Page 1 of 2 12 LastLast
Results 1 to 10 of 11

Thread: max processes exceeded with Transactions and Oracle!

  1. #1
    Join Date
    Feb 2005
    Posts
    19

    Default max processes exceeded with Transactions and Oracle!

    We're using Spring with Oracle and having an issue with our Oracle9i database where the jdbc connection counts are going through the roof...like Spring is not handling the connection close.

    The transactions are XA transactions with Oracle and our DB2 database. They work, but they are leaving an open thread on the oracle side.

    TIA!!!

  2. #2
    Join Date
    Aug 2004
    Location
    San Mateo, CA
    Posts
    1,265

    Default

    What connection pool do you use? I assume you're using Spring JDBC, rather than any manual connection handling?
    Rod Johnson - GM, SpringSource Division, VMware
    http://www.springsource.com
    Spring From the Source

  3. #3
    Join Date
    Feb 2005
    Posts
    19

    Default

    Yes, Spring JDBC.
    Currently we are going down the path that you need to use the same Id/Pwd for both Oracle and DB2 with connect/create session privileges.

    We're basically seeing open connections/sessions on the oracle side.

  4. #4
    Join Date
    Aug 2004
    Location
    San Mateo, CA
    Posts
    1,265

    Default

    Please show your DataSource bean definition.
    Rod Johnson - GM, SpringSource Division, VMware
    http://www.springsource.com
    Spring From the Source

  5. #5
    Join Date
    Feb 2005
    Posts
    19

    Default

    It's a JNDI reference, but this is the xml...
    I could go and get you any specific values from the datasource properties in Websphere if you like...

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans SYSTEM "qvc-spring-beans.dtd" >

    <beans>
    <bean id="transactionManager"
    class="org.springframework.jdbc.datasource.DataSou rceTransactionManager">
    <property name="dataSource">
    <ref bean="dataSourceDB2"/>
    </property>
    </bean>
    <bean id="opportunityTransactionManagerTarget"
    class="com.qvc.customerservices.app.ess.dao.Opport unityTransactionManagerImpl">
    <property name="scheduleOpportunityDAO">
    <ref bean="scheduleOpportunityDAO"/>
    </property>
    <property name="eligibilityRuleDAO">
    <ref bean="eligibilityRuleDAO"/>
    </property>
    <property name="scheduleOpportunityRequestDAO">
    <ref bean="scheduleOpportunityRequestDAO" />
    </property>
    </bean>
    <bean id="opportunityTransactionManager"
    class="org.springframework.transaction.interceptor .TransactionProxyFactoryBean">
    <property name="transactionManager">
    <ref bean="transactionManagerJTA"/>
    <!--<ref local="transactionManager"/>-->
    </property>
    <property name="target">
    <ref local="opportunityTransactionManagerTarget" />
    </property>
    <property name="transactionAttributes">
    <props>
    <!--<prop key="zxa*">PROPAGATION_REQUIRED, ISOLATION_READ_COMMITTED</prop>-->
    <prop key="update*">PROPAGATION_REQUIRES_NEW</prop>
    <prop key="do*">PROPAGATION_REQUIRED</prop>
    </props>
    </property>
    </bean>

    </beans>

  6. #6
    Join Date
    Aug 2004
    Location
    San Mateo, CA
    Posts
    1,265

    Default

    Where is the definition of dataSourceDB2?
    Rod Johnson - GM, SpringSource Division, VMware
    http://www.springsource.com
    Spring From the Source

  7. #7
    Join Date
    Feb 2005
    Posts
    19

    Default

    It's a JNDI reference within the Websphere Data Source in the server config.

    An update tho... we've done two things:

    a) Granted the user on Oracle with CREATE SESSION privileges per this article:

    http://www.di.unipi.it/~ghelli/bdl/A...1/jdbctran.htm

    b) The project team was using two separate ID's..one for Oracle, one for DB2 and besides a bad practice, we may have confused the transaction manager with regards to using the connection session pool on Oracle.

    We've begun testing again and we're not seeing the problem..."so far"... you know how that goes...let's give it some time...

    Thanks!

  8. #8
    Join Date
    Aug 2004
    Location
    San Mateo, CA
    Posts
    1,265

    Default

    If you want to use global transactions, you should use JtaTransactionManager.

    Spring JDBC will close connections, so I'd be very surprised to see it leaking.
    Rod Johnson - GM, SpringSource Division, VMware
    http://www.springsource.com
    Spring From the Source

  9. #9
    Join Date
    Feb 2005
    Posts
    19

    Default

    Yes, sorry... bad cut and paste on my part...

    Add this to the config.xml to get the whole picture...

    <beans>

    <!-- WebSphere transaction manager -->
    <bean id="webSphereTransactionManager" class="org.springframework.transaction.jta.WebSphe reTransactionManagerFactoryBean" />

    <!-- Transaction manager that delegates to JTA (for a transactional JNDI DataSource) -->
    <bean id="transactionManagerJTA" class="org.springframework.transaction.jta.JtaTran sactionManager">
    <property name="transactionManager">
    <ref local="webSphereTransactionManager" />
    </property>
    </bean>
    </beans>

  10. #10
    Join Date
    Sep 2005
    Posts
    8

    Default

    Where is the definition of dataSourceDB2?
    I think it is necessity.

Similar Threads

  1. problems creating an oracle LOB object
    By dencamel in forum Data
    Replies: 4
    Last Post: Aug 23rd, 2005, 09:10 AM
  2. Replies: 1
    Last Post: Mar 14th, 2005, 04:59 AM
  3. Replies: 6
    Last Post: Mar 6th, 2005, 12:41 PM
  4. Replies: 4
    Last Post: Jan 14th, 2005, 12:13 PM
  5. Replies: 7
    Last Post: Oct 18th, 2004, 12:30 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •