Announcement Announcement Module
Collapse
No announcement yet.
Transactions not rolling back Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Transactions not rolling back

    The situation is as follows:

    Weblogic 8.1.4, MySql 5

    EJB->Service Bean -> Dao

    The ejb has a method declared as follows:

    Code:
    /**
     * @ejb.interface-method view-type="remote"
     * @ejb.transaction type="Required"
     */
    public Subscriber createSubscriber(Subscriber s)
     throws SubscriberServiceException {
        return ComponentLocator.getSubscriberService().createSubscriber(s);
    }
    ComponentLocator gets the service from the spring context for tx proxying:

    Code:
    public static SubscriberService getSubscriberService() {
       return (SubscriberService) context.getBean("subscriberService");
    }
    the context is as follows:
    Code:
    <bean id="subscriberServiceTarget" class="mypackage.SubscriberServiceImpl"/>
    <bean id="subscriberService"    class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
          <property name="transactionManager">
             <ref bean="transactionManager"/>
          </property>
          <property name="target">
             <ref bean="subscriberServiceTarget"/>
          </property>
          <property name="transactionAttributes">
             <props>
                <prop key="create*">PROPAGATION_REQUIRED</prop>
                <prop key="update*">PROPAGATION_REQUIRED</prop>
                <prop key="delete*">PROPAGATION_REQUIRED</prop>
                <prop key="retrieve*">PROPAGATION_REQUIRED,readOnly</prop>
             </props>
          </property>
    </bean>
    
    <bean id="transactionManager" class="org.springframework.transaction.jta.WebLogicJtaTransactionManager"/>
    The target code is:

    Code:
    public Subscriber createSubscriber&#40;Subscriber s&#41;
    			throws SubscriberServiceException &#123;
    		try &#123;
    			return SubscriberDAO.createSubscriber&#40;s&#41;;
    		&#125; catch &#40;DataAccessException e&#41; &#123;
    			logger.error&#40;e&#41;;
    			throw new SubscriberServiceException&#40;"error creating subscriber", e&#41;;
    		&#125;
    	&#125;
    Which calls some jdbc template type code:

    Code:
    public static Subscriber createSubscriber&#40;Subscriber s&#41;
    			throws DataAccessException &#123;
    		JdbcTemplate jt = new JdbcTemplate&#40;ComponentLocator
    				.getMyDataSource&#40;&#41;&#41;;
    		GeneratedKeyHolder genkey = new GeneratedKeyHolder&#40;&#41;;
    		final String name = s.getName&#40;&#41;;
    		final String type = s.getType&#40;&#41;;
    		jt.update&#40;new PreparedStatementCreator&#40;&#41; &#123;
    			public PreparedStatement createPreparedStatement&#40;Connection con&#41;
    					throws SQLException &#123;
    				PreparedStatement ps = con
    						.prepareStatement&#40;"insert into subscribers&#40;subscriber_name, subscriber_type&#41;"
    								+ " values &#40;?,?&#41;"&#41;;
    				ps.setString&#40;1, name&#41;;
    				ps.setString&#40;2, type&#41;;
    				return ps;
    			&#125;
    		&#125;, genkey&#41;;
    ....
    // null pointer exception occurs later
    &#125;
    With the following datasource:

    Code:
    <bean id="myDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
          <property name="jndiName">
             <value>datasource.myDS</value>
          </property>
          <property name="jndiTemplate">
             <ref bean="jndiTemplate"/>
          </property>
    </bean>
    In the dao I encountered a null pointer exception, but the insert didn't roll back as expected.

    Here is the logging:

    Code:
    2005-08-09 16&#58;17&#58;53,780 &#91;ExecuteThread&#58; '13' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.support.TransactionSynchronizationManager.getResource&#40;TransactionSynchronizationManager.java&#58;136&#41; - Retrieved value &#91;org.springframework.jdbc.datasource.ConnectionHolder@10fb004&#93; for key &#91;weblogic.jdbc.common.internal.RmiDataSource@f6ede1&#93; bound to thread &#91;ExecuteThread&#58; '13' for queue&#58; 'weblogic.kernel.Default'&#93;
    2005-08-09 16&#58;17&#58;53,790 &#91;ExecuteThread&#58; '13' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.interceptor.RuleBasedTransactionAttribute.rollbackOn&#40;RuleBasedTransactionAttribute.java&#58;119&#41; - Applying rules to determine whether transaction should rollback on java.lang.NullPointerException
    2005-08-09 16&#58;17&#58;53,790 &#91;ExecuteThread&#58; '13' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.interceptor.RuleBasedTransactionAttribute.rollbackOn&#40;RuleBasedTransactionAttribute.java&#58;137&#41; - Winning rollback rule is&#58; null
    2005-08-09 16&#58;17&#58;53,790 &#91;ExecuteThread&#58; '13' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.interceptor.RuleBasedTransactionAttribute.rollbackOn&#40;RuleBasedTransactionAttribute.java&#58;143&#41; - No relevant rollback rule found&#58; applying superclass default
    2005-08-09 16&#58;17&#58;53,790 &#91;ExecuteThread&#58; '13' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.interceptor.TransactionAspectSupport.doCloseTransactionAfterThrowing&#40;TransactionAspectSupport.java&#58;272&#41; - Invoking rollback for transaction on gov.epa.cdx.enviroflash.service.subscriber.SubscriberService.createSubscriber due to throwable &#91;java.lang.NullPointerException&#93;
    2005-08-09 16&#58;17&#58;53,790 &#91;ExecuteThread&#58; '13' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCompletion&#40;AbstractPlatformTransactionManager.java&#58;576&#41; - Triggering beforeCompletion synchronization
    2005-08-09 16&#58;17&#58;53,790 &#91;ExecuteThread&#58; '13' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.support.TransactionSynchronizationManager.unbindResource&#40;TransactionSynchronizationManager.java&#58;184&#41; - Removed value &#91;org.springframework.jdbc.datasource.ConnectionHolder@10fb004&#93; for key &#91;weblogic.jdbc.common.internal.RmiDataSource@f6ede1&#93; from thread &#91;ExecuteThread&#58; '13' for queue&#58; 'weblogic.kernel.Default'&#93;
    2005-08-09 16&#58;17&#58;53,790 &#91;ExecuteThread&#58; '13' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.jdbc.datasource.DataSourceUtils.doReleaseConnection&#40;DataSourceUtils.java&#58;271&#41; - Closing JDBC Connection
    2005-08-09 16&#58;17&#58;53,830 &#91;ExecuteThread&#58; '13' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback&#40;AbstractPlatformTransactionManager.java&#58;502&#41; - Setting existing transaction rollback-only
    2005-08-09 16&#58;17&#58;53,830 &#91;ExecuteThread&#58; '13' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.jta.JtaTransactionManager.doSetRollbackOnly&#40;JtaTransactionManager.java&#58;739&#41; - Setting JTA transaction rollback-only
    2005-08-09 16&#58;17&#58;53,830 &#91;ExecuteThread&#58; '13' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCompletion&#40;AbstractPlatformTransactionManager.java&#58;606&#41; - Triggering afterCompletion synchronization
    2005-08-09 16&#58;17&#58;53,830 &#91;ExecuteThread&#58; '13' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.support.TransactionSynchronizationManager.clearSynchronization&#40;TransactionSynchronizationManager.java&#58;259&#41; - Clearing transaction synchronization
    Any ideas as to why it's not really rolling back? Also, if I change the transaction manager as follows:

    Code:
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
         <property name="dataSource" ref="myDataSource"/>
    </bean>
    It rolls back. But this isn't a good solution long term because this doesn't really mesh with Jta tx's.

  • #2
    Hi,

    From your trace

    org.springframework.transaction.jta.JtaTransaction Manager.doSetRollbackOnly(JtaTransactionManager.ja va:739) - Setting JTA transaction rollback-only
    it looks like Spring transaction manager is setting the transaction to be rolled back but JTA transaction started by Weblogic when you're calling your EJB for some reason is not rolled back. For your EJB are you using CMT or BMT?

    One other question would be, Is your NullPointerException propagated out of your EJB method ?


    Marius

    Comment


    • #3
      Originally posted by marius
      Hi,

      From your trace

      org.springframework.transaction.jta.JtaTransaction Manager.doSetRollbackOnly(JtaTransactionManager.ja va:739) - Setting JTA transaction rollback-only
      it looks like Spring transaction manager is setting the transaction to be rolled back but JTA transaction started by Weblogic when you're calling your EJB for some reason is not rolled back. For your EJB are you using CMT or BMT?

      One other question would be, Is your NullPointerException propagated out of your EJB method ?


      Marius
      I am using CMT, and yes, the NullPointerException is propogated to my Junit test case that invokes the EJB:

      Code:
      2005-08-10 10&#58;36&#58;02,419 ERROR mypackage.SubscriberServiceTest - org.springframework.remoting.RemoteAccessException&#58; Cannot access remote service &#91;service.SubscriberService&#93;; nested exception is java.rmi.RemoteException&#58; EJB Exception&#58; ; nested exception is&#58; 
      	java.lang.NullPointerException

      Also, and I doubt this matters, I'm proxying the EJB through spring:

      Code:
      <bean id="subscriberService" class="org.springframework.ejb.access.SimpleRemoteStatelessSessionProxyFactoryBean" lazy-init="true">
            <property name="jndiEnvironment">
               <props>
                  <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>
               </props>
            </property>
            <property name="lookupHomeOnStartup" value="false"/>
            <property name="jndiName" value="service.SubscriberService"/>
            <property name="businessInterface" value="mypackage.SubscriberService"/>
      </bean>

      Comment


      • #4
        update

        So to isolate it a bit further, I made the EJB method non-transactional, and am just relying on the spring transaction wiring. It still does not roll back, despite the fact that the logging indicates the doRollback is being called:

        Code:
        2005-08-10 11&#58;15&#58;58,691 &#91;ExecuteThread&#58; '4' for queue&#58; 'weblogic.kernel.System'&#93; DEBUG org.apache.struts.tiles.xmlDefinition.I18nFactorySet.initFactory&#40;I18nFactorySet.java&#58;196&#41; - Factory initialized from file '/WEB-INF/tiles-defs.xml'.
        2005-08-10 11&#58;15&#58;58,691 &#91;ExecuteThread&#58; '4' for queue&#58; 'weblogic.kernel.System'&#93; INFO  org.apache.struts.tiles.TilesPlugin.initDefinitionsFactory&#40;TilesPlugin.java&#58;236&#41; - Tiles definition factory loaded for module ''.
        2005-08-10 11&#58;17&#58;01,704 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;186&#41; - Returning cached instance of singleton bean 'subscriberService'
        2005-08-10 11&#58;17&#58;01,704 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForSharedInstance&#40;AbstractBeanFactory.java&#58;760&#41; - Bean with name 'subscriberService' is a factory bean
        2005-08-10 11&#58;17&#58;01,704 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary&#40;TransactionAspectSupport.java&#58;213&#41; - Getting transaction for gov.epa.cdx.enviroflash.service.subscriber.SubscriberService.createSubscriber
        2005-08-10 11&#58;17&#58;01,704 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction&#40;AbstractPlatformTransactionManager.java&#58;205&#41; - Using transaction object &#91;org.springframework.transaction.jta.JtaTransactionObject@6fdc0c&#93;
        2005-08-10 11&#58;17&#58;01,704 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction&#40;AbstractPlatformTransactionManager.java&#58;232&#41; - Creating new transaction
        2005-08-10 11&#58;17&#58;01,704 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.jta.JtaTransactionManager.doBegin&#40;JtaTransactionManager.java&#58;557&#41; - Beginning JTA transaction
        2005-08-10 11&#58;17&#58;01,704 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.support.TransactionSynchronizationManager.initSynchronization&#40;TransactionSynchronizationManager.java&#58;213&#41; - Initializing transaction synchronization
        2005-08-10 11&#58;17&#58;01,714 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.beans.factory.support.AbstractBeanFactory.getBean&#40;AbstractBeanFactory.java&#58;186&#41; - Returning cached instance of singleton bean 'enviroflashDataSource'
        2005-08-10 11&#58;17&#58;01,714 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForSharedInstance&#40;AbstractBeanFactory.java&#58;760&#41; - Bean with name 'enviroflashDataSource' is a factory bean
        2005-08-10 11&#58;17&#58;01,724 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.jdbc.core.JdbcTemplate.update&#40;JdbcTemplate.java&#58;692&#41; - Executing SQL update and returning generated keys
        2005-08-10 11&#58;17&#58;01,734 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection&#40;DataSourceUtils.java&#58;106&#41; - Opening JDBC Connection
        2005-08-10 11&#58;17&#58;01,734 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection&#40;DataSourceUtils.java&#58;110&#41; - Registering transaction synchronization for JDBC Connection
        2005-08-10 11&#58;17&#58;01,734 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.support.TransactionSynchronizationManager.bindResource&#40;TransactionSynchronizationManager.java&#58;161&#41; - Bound value &#91;org.springframework.jdbc.datasource.ConnectionHolder@1d79e35&#93; for key &#91;weblogic.jdbc.common.internal.RmiDataSource@19eef79&#93; to thread &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93;
        2005-08-10 11&#58;17&#58;01,734 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.support.TransactionSynchronizationManager.getResource&#40;TransactionSynchronizationManager.java&#58;136&#41; - Retrieved value &#91;org.springframework.jdbc.datasource.ConnectionHolder@1d79e35&#93; for key &#91;weblogic.jdbc.common.internal.RmiDataSource@19eef79&#93; bound to thread &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93;
        2005-08-10 11&#58;17&#58;01,804 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.core.CollectionFactory.createLinkedCaseInsensitiveMapIfPossible&#40;CollectionFactory.java&#58;136&#41; - Falling back to java.util.LinkedHashMap for linked case-insensitive map
        2005-08-10 11&#58;17&#58;01,804 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.jdbc.core.JdbcTemplate$3.doInPreparedStatement&#40;JdbcTemplate.java&#58;709&#41; - SQL update affected 1 rows and returned 1 keys
        2005-08-10 11&#58;17&#58;01,804 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.support.TransactionSynchronizationManager.getResource&#40;TransactionSynchronizationManager.java&#58;136&#41; - Retrieved value &#91;org.springframework.jdbc.datasource.ConnectionHolder@1d79e35&#93; for key &#91;weblogic.jdbc.common.internal.RmiDataSource@19eef79&#93; bound to thread &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93;
        2005-08-10 11&#58;17&#58;01,804 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.interceptor.RuleBasedTransactionAttribute.rollbackOn&#40;RuleBasedTransactionAttribute.java&#58;119&#41; - Applying rules to determine whether transaction should rollback on java.lang.NullPointerException
        2005-08-10 11&#58;17&#58;01,814 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.interceptor.RuleBasedTransactionAttribute.rollbackOn&#40;RuleBasedTransactionAttribute.java&#58;137&#41; - Winning rollback rule is&#58; null
        2005-08-10 11&#58;17&#58;01,814 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.interceptor.RuleBasedTransactionAttribute.rollbackOn&#40;RuleBasedTransactionAttribute.java&#58;143&#41; - No relevant rollback rule found&#58; applying superclass default
        2005-08-10 11&#58;17&#58;01,814 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.interceptor.TransactionAspectSupport.doCloseTransactionAfterThrowing&#40;TransactionAspectSupport.java&#58;272&#41; - Invoking rollback for transaction on gov.epa.cdx.enviroflash.service.subscriber.SubscriberService.createSubscriber due to throwable &#91;java.lang.NullPointerException&#93;
        2005-08-10 11&#58;17&#58;01,814 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCompletion&#40;AbstractPlatformTransactionManager.java&#58;576&#41; - Triggering beforeCompletion synchronization
        2005-08-10 11&#58;17&#58;01,814 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.support.TransactionSynchronizationManager.unbindResource&#40;TransactionSynchronizationManager.java&#58;184&#41; - Removed value &#91;org.springframework.jdbc.datasource.ConnectionHolder@1d79e35&#93; for key &#91;weblogic.jdbc.common.internal.RmiDataSource@19eef79&#93; from thread &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93;
        2005-08-10 11&#58;17&#58;01,814 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.jdbc.datasource.DataSourceUtils.doReleaseConnection&#40;DataSourceUtils.java&#58;271&#41; - Closing JDBC Connection
        2005-08-10 11&#58;17&#58;01,814 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback&#40;AbstractPlatformTransactionManager.java&#58;497&#41; - Initiating transaction rollback
        2005-08-10 11&#58;17&#58;01,814 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.jta.JtaTransactionManager.doRollback&#40;JtaTransactionManager.java&#58;728&#41; - Rolling back JTA transaction
        2005-08-10 11&#58;17&#58;01,814 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerAfterCompletion&#40;AbstractPlatformTransactionManager.java&#58;606&#41; - Triggering afterCompletion synchronization
        2005-08-10 11&#58;17&#58;01,814 &#91;ExecuteThread&#58; '14' for queue&#58; 'weblogic.kernel.Default'&#93; DEBUG org.springframework.transaction.support.TransactionSynchronizationManager.clearSynchronization&#40;TransactionSynchronizationManager.java&#58;259&#41; - Clearing transaction synchronization

        Comment


        • #5
          I must admit that this is quite interesting. From your last traces it looks like the JDBC Connection is closed before JTATransactionManager triggers rollback.

          org.springframework.jdbc.core.JdbcTemplate$3.doInP reparedStatement(JdbcTemplate.java:709) - SQL update affected 1 rows and returned 1 keys
          ...hmm.... may this indicate a commit ?

          Comment


          • #6
            Originally posted by marius
            I must admit that this is quite interesting. From your last traces it looks like the JDBC Connection is closed before JTATransactionManager triggers rollback.

            org.springframework.jdbc.core.JdbcTemplate$3.doInP reparedStatement(JdbcTemplate.java:709) - SQL update affected 1 rows and returned 1 keys
            ...hmm.... may this indicate a commit ?
            Perhaps, but all of the connection management logic is occuring in the JdbcTemplate, so I'm not sure what I can do to avoid this. Is there some limitation on how many levels of indirection you can have between the transactional proxy and where the actual db interaction that takes place? That is to say, do Jdbc operations have to occur directly in the method that starts/continues the transaction, or does it continue along the call stack?

            Comment


            • #7
              I'm wondering what is in your WebLogic configuration for the DataSource - is it a JDBCTxDataSource? Looking in my config.xml I have the following kind of entries for my DataSources:
              Code:
                  <JDBCTxDataSource JNDIName="jdbc/imagedb" Name="imagedbDS"
                      PoolName="imagedbPool" Targets="myserver"/>

              Comment


              • #8
                Originally posted by trisberg
                I'm wondering what is in your WebLogic configuration for the DataSource - is it a JDBCTxDataSource? Looking in my config.xml I have the following kind of entries for my DataSources:
                Code:
                    <JDBCTxDataSource JNDIName="jdbc/imagedb" Name="imagedbDS"
                        PoolName="imagedbPool" Targets="myserver"/>
                If you are ever in Maryland, I'll buy you a beer. That's exactly what it was. It's always the stupid little things. Thanks for your help (you too marius).

                Comment

                Working...
                X