4 Replies Latest reply on Jul 10, 2007 6:05 PM by bmcgovern

    Problems using multiple datasources

    dustismo

      Hello,

      I am trying to access two different databases. I added the connection properties to Project-dev.ds.xml

      <?xml version="1.0" encoding="UTF-8"?>
      <datasources>
      
       <local-tx-datasource>
       <jndi-name>MainDatasource</jndi-name>
       <connection-url>connection_url</connection-url>
       <driver-class>com.mysql.jdbc.Driver</driver-class>
       <user-name>username</user-name>
       <password>password</password>
       </local-tx-datasource>
      
       <local-tx-datasource>
       <jndi-name>SecondDatasource</jndi-name>
       <connection-url>connection_url</connection-url>
       <driver-class>com.mysql.jdbc.Driver</driver-class>
       <user-name>username</user-name>
       <password>password</password>
       </local-tx-datasource>
      </datasources>
      


      And in components.xml

      
      <core:managed-persistence-context name="entityManager"
       auto-create="true" persistence-unit-jndi-name="java:/MainEntityManagerFactory"/>
      
       <core:managed-persistence-context name="secondEntityManager"
       auto-create="true"
       persistence-unit-jndi-name="java:/SecondEntityManagerFactory"/>
      
      


      and persistence-dev.xml

       <persistence-unit name="Main">
       <provider>org.hibernate.ejb.HibernatePersistence</provider>
       <jta-data-source>java:/MainDatasource</jta-data-source>
       <properties>
       <property name="hibernate.cache.use_query_cache" value="true"/>
       <property name="hibernate.show_sql" value="true"/>
       <property name="hibernate.format_sql" value="true" />
       <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
       <property name="jboss.entity.manager.factory.jndi.name" value="java:/MainEntityManagerFactory"/>
       </properties>
       </persistence-unit>
      
       <persistence-unit name="Second">
       <provider>org.hibernate.ejb.HibernatePersistence</provider>
       <jta-data-source>java:/SecondDatasource</jta-data-source>
       <properties>
       <property name="hibernate.cache.use_query_cache" value="true"/>
       <property name="hibernate.show_sql" value="true"/>
       <property name="hibernate.format_sql" value="true" />
       <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
       <property name="jboss.entity.manager.factory.jndi.name" value="java:/SecondEntityManagerFactory"/>
       </properties>
       </persistence-unit>
      
      


      When I try to do a select on the second database I get the following stack trace.. Strange thing is, that it works some of the time (mostly it doesn't though) I am accessing the entityManager using
      @In
      EntityManager secondEntityManager

      Any help?
      
      11:46:34,840 WARN [JDBCExceptionReporter] SQL Error: 0, SQLState: null
      11:46:34,841 ERROR [JDBCExceptionReporter] Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: 7f000101:8242:468551b3:92 status: ActionStatus.ABORT_ONLY >); - nested throwable: (org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: 7f000101:8242:468551b3:92 status: ActionStatus.ABORT_ONLY >))
      11:46:34,850 ERROR [STDERR] Jun 29, 2007 11:46:34 AM com.sun.facelets.FaceletViewHandler handleRenderException
      SEVERE: Error Rendering View[/if/search/list.xhtml]
      javax.faces.FacesException: javax.el.ELException: /if/search/list.xhtml @53,97 rendered="#{empty search.results}": Error reading 'results' on type net.infofilter.session.torrent.TorrentSearch_$$_javassist_251
       at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:373)
       at javax.faces.component.UIComponent.encodeAll(UIComponent.java:880)
       at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
       at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:571)
       at org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
       at org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:233)
       at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
       at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
       at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:70)
       at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:64)
       at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:56)
       at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:60)
       at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:56)
       at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:81)
       at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:56)
       at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:47)
       at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:56)
       at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:293)
       at org.jboss.seam.web.AbstractAjax4jsfFilter.doFilter(AbstractAjax4jsfFilter.java:35)
       at org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:56)
       at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:127)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:127)
       at org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:277)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
       at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
       at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
       at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
       at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
       at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:624)
       at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
       at java.lang.Thread.run(Thread.java:595)
      Caused by: javax.el.ELException: /if/search/list.xhtml @53,97 rendered="#{empty search.results}": Error reading 'results' on type net.infofilter.session.torrent.Search_$$_javassist_251
       at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:76)
       at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:370)
       ... 47 more
      Caused by: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Cannot open connection
       at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:629)
       at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:73)
       at net.infofilter.session.torrent.Search.doSearch(Search.java:61)
       at net.infofilter.session.torrent.TorrentSearch.getResults(TorrentSearch.java:153)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
       at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
       at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:57)
       at org.jboss.seam.interceptors.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:34)
       at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
       at org.jboss.seam.interceptors.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:47)
       at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
       at org.jboss.seam.interceptors.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:27)
       at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:69)
       at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:103)
       at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:151)
       at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:87)
       at net.infofilter.session.torrent.TorrentSearch_$$_javassist_251.getResults(TorrentSearch_$$_javassist_251.java)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
       at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
       at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
       at org.jboss.el.parser.AstPropertySuffix.getValue(AstPropertySuffix.java:53)
       at org.jboss.el.parser.AstValue.getValue(AstValue.java:67)
       at org.jboss.el.parser.AstEmpty.getValue(AstEmpty.java:29)
       at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
       at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
       ... 48 more
      Caused by: org.hibernate.exception.GenericJDBCException: Cannot open connection
       at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
       at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
       at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
       at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
       at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:426)
       at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
       at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(
      11:46:34,851 ERROR [STDERR] AbstractBatcher.java:139)
       at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547)
       at org.hibernate.loader.Loader.doQuery(Loader.java:673)
       at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
       at org.hibernate.loader.Loader.doList(Loader.java:2220)
       at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
       at org.hibernate.loader.Loader.list(Loader.java:2099)
       at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
       at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
       at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
       at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
       at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
       at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:64)
       ... 79 more
      Caused by: org.jboss.util.NestedSQLException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: 7f000101:8242:468551b3:92 status: ActionStatus.ABORT_ONLY >); - nested throwable: (org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: 7f000101:8242:468551b3:92 status: ActionStatus.ABORT_ONLY >))
       at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:94)
       at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:47)
       at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
       ... 93 more
      Caused by: org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: 7f000101:8242:468551b3:92 status: ActionStatus.ABORT_ONLY >)
       at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:343)
       at org.jboss.resource.connectionmanager.BaseConnectionManager2.reconnectManagedConnection(BaseConnectionManager2.java:518)
       at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:399)
       at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842)
       at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
       ... 95 more
      Caused by: javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: 7f000101:8242:468551b3:92 status: ActionStatus.ABORT_ONLY >
       at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener$TransactionSynchronization.checkEnlisted(TxConnectionManager.java:744)
       at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConnectionManager.java:577)
       at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:337)
       ... 99 more
      11:46:36,995 WARN [JDBCExceptionReporter] SQL Error: 0, SQLState: null
      11:46:36,995 ERROR [JDBCExceptionReporter] Transaction is not active: tx=TransactionImple < ac, BasicAction: 7f000101:8242:468551b3:92 status: ActionStatus.ABORT_ONLY >; - nested throwable: (javax.resource.ResourceException: Transaction is not active: tx=TransactionImple < ac, BasicAction: 7f000101:8242:468551b3:92 status: ActionStatus.ABORT_ONLY >)
      11:46:38,289 WARN [JDBCExceptionReporter] SQL Error: 0, SQLState: null
      11:46:38,289 ERROR [JDBCExceptionReporter] Transaction is not active: tx=TransactionImple < ac, BasicAction: 7f000101:8242:468551b3:92 status: ActionStatus.ABORT_ONLY >; - nested throwable: (javax.resource.ResourceException: Transaction is not active: tx=TransactionImple < ac, BasicAction: 7f000101:8242:468551b3:92 status: ActionStatus.ABORT_ONLY >)
      11:46:38,302 WARN [JDBCExceptionReporter] SQL Error: 0, SQLState: null
      11:46:38,302 ERROR [JDBCExceptionReporter] Transaction is not active: tx=TransactionImple < ac, BasicAction: 7f000101:8242:468551b3:92 status: ActionStatus.ABORT_ONLY >; - nested throwable: (javax.resource.ResourceException: Transaction is not active: tx=TransactionImple < ac, BasicAction: 7f000101:8242:468551b3:92 status: ActionStatus.ABORT_ONLY >)
      11:46:38,309 WARN [JDBCExceptionReporter] SQL Error: 0, SQLState: null
      11:46:38,309 ERROR [JDBCExceptionReporter] Transaction is not active: tx=TransactionImple < ac, BasicAction: 7f000101:8242:468551b3:92 status: ActionStatus.ABORT_ONLY >; - nested throwable: (javax.resource.ResourceException: Transaction is not active: tx=TransactionImple < ac, BasicAction: 7f000101:8242:468551b3:92 status: ActionStatus.ABORT_ONLY >)
      


        • 1. Re: Problems using multiple datasources
          gavin.king

          Looks like you have not got your stuff properly configured for distributed transactions. Especially, local-tx-datasource is surely the wrong thing to use.

          This is more of a JBoss AS question, not a Seam question.

          • 2. Re: Problems using multiple datasources
            dustismo

            Gavin,

            Thanks for pointing me in the right direction (I would have never figured this out otherwise)..

            For anyone else out there with the same problem.. I solved it by changing local-tx-datasource to xa-datasource in DataSource-dev.xml

            example:

             <xa-datasource>
             <jndi-name>MainDatasource</jndi-name>
             <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
             <xa-datasource-property name="URL">jdbc:mysql://xxx.xxx.xx</xa-datasource-property>
            
             <user-name>xxxxxxxx</user-name>
             <password>xxxxxxxx</password>
             <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
            
             <!-- This disables transaction interleaving (which BTW, most DB vendors don't support) -->
             <track-connection-by-tx/>
             <isSameRM-override-value>false</isSameRM-override-value>
            
             <!--pooling parameters-->
             <min-pool-size>5</min-pool-size>
             <max-pool-size>20</max-pool-size>
             <blocking-timeout-millis>5000</blocking-timeout-millis>
             <idle-timeout-minutes>15</idle-timeout-minutes>
            
             <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
             <metadata>
             <type-mapping>mySQL</type-mapping>
             </metadata>
             </xa-datasource>
            
            


            -Dustin

            • 3. Re: Problems using multiple datasources
              dustismo

              For anyone else trying to do this, I had to add:

               <no-tx-separate-pools>true</no-tx-separate-pools>
              


              to each xa-datasource entry, otherwise it was throwing XAER_OUTSIDE exceptions at times.

              • 4. Re: Problems using multiple datasources
                bmcgovern

                I'm getting the exact same error only I'm using an XA-datasource. Im using SQL Server 2005. Any ideas?



                One Data Source, the other is configured same just different DB instance.

                <datasources>
                 <xa-datasource>
                 <jndi-name>jdbc/myronepjndi</jndi-name>
                 <use-java-context>false</use-java-context>
                 <track-connection-by-tx/>
                 <!--<xa-datasource-property name="URL">jdbc:jtds:sqlserver://192.168.100.9:1433;databasename=MyronEP5;tds=8.0;lastupdatecount=true</xa-datasource-property>-->
                 <xa-datasource-property name="ServerName">localhost</xa-datasource-property>
                 <xa-datasource-property name="DatabaseName">MyronEP5</xa-datasource-property>
                 <xa-datasource-property name="SelectMethod">cursor</xa-datasource-property>
                
                 <xa-datasource-class>com.microsoft.sqlserver.jdbc.SQLServerXADataSource</xa-datasource-class>
                 <!--<xa-datasource-property name="User">myronep5</xa-datasource-property>
                 <xa-datasource-property name="Password">myronep5</xa-datasource-property>-->
                 <user-name>myron</user-name>
                 <password>myron</password>
                 <metadata>
                 <type-mapping>MS SQLSERVER2000</type-mapping>
                 </metadata>
                
                 </xa-datasource>
                </datasources>
                



                SPRING BEAN DEFINITION
                <bean id="myronTransactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
                 <property name="userTransactionName" value="UserTransaction" />
                 <!--<property name="userTransactionName" >null></null></property>
                 <property name="transactionManager">
                 <ref bean="jndiTransactionManager" />
                 </property>-->
                 </bean>
                
                
                <bean id="txProxyTemplate" abstract="true"
                 class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
                 <property name="transactionManager">
                 <ref bean="myronTransactionManager" />
                 </property>
                 <property name="transactionAttributes">
                 <props>
                 <prop key="add*">PROPAGATION_REQUIRED</prop>
                 <prop key="set*">PROPAGATION_REQUIRED</prop>
                 <prop key="reset*">PROPAGATION_REQUIRED</prop>
                 <prop key="update*">PROPAGATION_REQUIRED</prop>
                 <prop key="save*">PROPAGATION_REQUIRED</prop>
                 <prop key="remove*">PROPAGATION_REQUIRED</prop>
                 <prop key="delete*">PROPAGATION_REQUIRED</prop>
                 <prop key="process*">PROPAGATION_REQUIRED</prop>
                 <prop key="exist*">PROPAGATION_REQUIRED</prop>
                 <prop key="checkout">PROPAGATION_NEVER</prop>
                 <prop key="getCartByCustomerSession">PROPAGATION_REQUIRED</prop>
                 <prop key="releaseOrderShipment">
                 PROPAGATION_NEVER
                 </prop>
                 <prop key="getNextOrderNumber">
                 PROPAGATION_REQUIRES_NEW,ISOLATION_SERIALIZABLE
                 </prop>
                 <prop key="*">PROPAGATION_SUPPORTS,readOnly</prop>
                 </props>
                 </property>
                
                 <property name="preInterceptors">
                 <ref bean="servicePreInterceptors"/>
                 </property>
                 </bean>
                
                


                STACK TRACE
                2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.jta.JtaTransactionManager - Using transaction object [org.springframework.transaction.jta.JtaTransactionObject@5971c3]
                2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.support.TransactionSynchronizationManager - Initializing transaction synchronization
                2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.interceptor.TransactionInterceptor - Getting transaction for com.elasticpath.service.customer.CustomerSessionService.findByGuid
                2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.support.TransactionSynchronizationManager - Bound value [org.springframework.orm.hibernate3.SessionHolder@3bf5e8] for key [org.hibernate.impl.SessionFactoryImpl@261ac7] to thread [http-127.0.0.1-8080-1]
                2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.support.TransactionSynchronizationManager - Retrieved value [org.springframework.orm.hibernate3.SessionHolder@3bf5e8] for key [org.hibernate.impl.SessionFactoryImpl@261ac7] bound to thread [http-127.0.0.1-8080-1]
                2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.support.TransactionSynchronizationManager - Retrieved value [org.springframework.orm.hibernate3.SessionHolder@3bf5e8] for key [org.hibernate.impl.SessionFactoryImpl@261ac7] bound to thread [http-127.0.0.1-8080-1]
                2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.interceptor.TransactionInterceptor - Invoking commit for transaction on com.elasticpath.service.customer.CustomerSessionService.findByGuid
                2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.jta.JtaTransactionManager - Triggering beforeCommit synchronization
                2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.jta.JtaTransactionManager - Triggering beforeCompletion synchronization
                2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.support.TransactionSynchronizationManager - Removed value [org.springframework.orm.hibernate3.SessionHolder@3bf5e8] for key [org.hibernate.impl.SessionFactoryImpl@261ac7] from thread [http-127.0.0.1-8080-1]
                2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.jta.JtaTransactionManager - Triggering afterCommit synchronization
                2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.jta.JtaTransactionManager - Triggering afterCompletion synchronization
                2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.support.TransactionSynchronizationManager - Clearing transaction synchronization
                2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.jta.JtaTransactionManager - Using transaction object [org.springframework.transaction.jta.JtaTransactionObject@4976d6]
                2007-07-10 17:52:01,796 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.jta.JtaTransactionManager - Creating new transaction with name [com.elasticpath.service.customer.CustomerSessionService.update]
                2007-07-10 17:52:01,812 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.support.TransactionSynchronizationManager - Initializing transaction synchronization
                2007-07-10 17:52:01,812 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.interceptor.TransactionInterceptor - Getting transaction for com.elasticpath.service.customer.CustomerSessionService.update
                2007-07-10 17:52:01,812 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.support.TransactionSynchronizationManager - Bound value [org.springframework.orm.hibernate3.SessionHolder@11701fd] for key [org.hibernate.impl.SessionFactoryImpl@261ac7] to thread [http-127.0.0.1-8080-1]
                2007-07-10 17:52:01,812 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.support.TransactionSynchronizationManager - Retrieved value [org.springframework.orm.hibernate3.SessionHolder@11701fd] for key [org.hibernate.impl.SessionFactoryImpl@261ac7] bound to thread [http-127.0.0.1-8080-1]
                2007-07-10 17:52:01,812 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.interceptor.TransactionInterceptor - Invoking commit for transaction on com.elasticpath.service.customer.CustomerSessionService.update
                2007-07-10 17:52:01,812 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.jta.JtaTransactionManager - Triggering beforeCommit synchronization
                2007-07-10 17:52:01,828 [http-127.0.0.1-8080-1] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: null
                2007-07-10 17:52:01,828 [http-127.0.0.1-8080-1] ERROR org.hibernate.util.JDBCExceptionReporter - Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >); - nested throwable: (org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >))
                2007-07-10 17:52:01,828 [http-127.0.0.1-8080-1] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: null
                2007-07-10 17:52:01,828 [http-127.0.0.1-8080-1] ERROR org.hibernate.util.JDBCExceptionReporter - Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >); - nested throwable: (org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >))
                2007-07-10 17:52:01,828 [http-127.0.0.1-8080-1] ERROR org.hibernate.event.def.AbstractFlushingEventListener - Could not synchronize database state with session
                org.hibernate.exception.GenericJDBCException: Cannot open connection
                 at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:91)
                 at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:79)
                 at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
                 at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
                 at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:318)
                 at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:109)
                 at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:93)
                 at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:86)
                 at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:171)
                 at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2163)
                 at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2118)
                 at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2374)
                 at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:84)
                 at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:243)
                 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:227)
                 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
                 at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296)
                 at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
                 at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:980)
                 at org.springframework.orm.hibernate3.SpringSessionSynchronization.beforeCommit(SpringSessionSynchronization.java:130)
                 at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:48)
                 at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:707)
                 at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:523)
                 at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:510)
                 at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:310)
                 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
                 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
                 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:209)
                 at $Proxy63.update(Unknown Source)
                 at com.elasticpath.sfweb.service.WebCustomerSessionServiceImpl.findOrCreateCustomerSession(WebCustomerSessionServiceImpl.java:138)
                 at com.elasticpath.sfweb.service.WebCustomerSessionServiceImpl.handleFilterRequest(WebCustomerSessionServiceImpl.java:61)
                 at com.elasticpath.sfweb.filters.CustomerSessionFilter.doFilter(CustomerSessionFilter.java:67)
                 at com.elasticpath.sfweb.filters.EpFilterToBeanProxy.doFilter(EpFilterToBeanProxy.java:137)
                 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                 at com.elasticpath.commons.filter.impl.EncodingFilter.handleFilter(EncodingFilter.java:137)
                 at com.elasticpath.commons.filter.impl.EncodingFilter.doFilter(EncodingFilter.java:80)
                 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                 at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
                 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                 at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
                 at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
                 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
                 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
                 at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
                 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
                 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
                 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
                 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
                 at java.lang.Thread.run(Thread.java:595)
                Caused by: org.jboss.util.NestedSQLException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >); - nested throwable: (org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >))
                 at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:94)
                 at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
                 at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:315)
                 ... 50 more
                Caused by: org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >)
                 at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:343)
                 at org.jboss.resource.connectionmanager.BaseConnectionManager2.reconnectManagedConnection(BaseConnectionManager2.java:518)
                 at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:399)
                 at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842)
                 at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
                 ... 52 more
                Caused by: javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >
                 at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener$TransactionSynchronization.checkEnlisted(TxConnectionManager.java:744)
                 at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConnectionManager.java:577)
                 at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:337)
                 ... 56 more
                2007-07-10 17:52:01,843 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.jta.JtaTransactionManager - Triggering beforeCompletion synchronization
                2007-07-10 17:52:01,843 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.support.TransactionSynchronizationManager - Removed value [org.springframework.orm.hibernate3.SessionHolder@11701fd] for key [org.hibernate.impl.SessionFactoryImpl@261ac7] from thread [http-127.0.0.1-8080-1]
                2007-07-10 17:52:01,843 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.jta.JtaTransactionManager - Initiating transaction rollback on commit exception
                org.springframework.orm.hibernate3.HibernateJdbcException: JDBC exception on Hibernate data access; nested exception is org.hibernate.exception.GenericJDBCException: Cannot open connection
                Caused by:
                org.hibernate.exception.GenericJDBCException: Cannot open connection
                 at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:91)
                 at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:79)
                 at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
                 at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
                 at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:318)
                 at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:109)
                 at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:93)
                 at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:86)
                 at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:171)
                 at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2163)
                 at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2118)
                 at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2374)
                 at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:84)
                 at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:243)
                 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:227)
                 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
                 at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296)
                 at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
                 at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:980)
                 at org.springframework.orm.hibernate3.SpringSessionSynchronization.beforeCommit(SpringSessionSynchronization.java:130)
                 at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:48)
                 at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:707)
                 at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:523)
                 at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:510)
                 at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:310)
                 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
                 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
                 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:209)
                 at $Proxy63.update(Unknown Source)
                 at com.elasticpath.sfweb.service.WebCustomerSessionServiceImpl.findOrCreateCustomerSession(WebCustomerSessionServiceImpl.java:138)
                 at com.elasticpath.sfweb.service.WebCustomerSessionServiceImpl.handleFilterRequest(WebCustomerSessionServiceImpl.java:61)
                 at com.elasticpath.sfweb.filters.CustomerSessionFilter.doFilter(CustomerSessionFilter.java:67)
                 at com.elasticpath.sfweb.filters.EpFilterToBeanProxy.doFilter(EpFilterToBeanProxy.java:137)
                 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                 at com.elasticpath.commons.filter.impl.EncodingFilter.handleFilter(EncodingFilter.java:137)
                 at com.elasticpath.commons.filter.impl.EncodingFilter.doFilter(EncodingFilter.java:80)
                 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                 at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
                 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                 at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
                 at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
                 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
                 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
                 at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
                 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
                 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
                 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
                 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
                 at java.lang.Thread.run(Thread.java:595)
                Caused by: org.jboss.util.NestedSQLException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >); - nested throwable: (org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >))
                 at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:94)
                 at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
                 at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:315)
                 ... 50 more
                Caused by: org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >)
                 at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:343)
                 at org.jboss.resource.connectionmanager.BaseConnectionManager2.reconnectManagedConnection(BaseConnectionManager2.java:518)
                 at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:399)
                 at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842)
                 at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
                 ... 52 more
                Caused by: javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >
                 at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener$TransactionSynchronization.checkEnlisted(TxConnectionManager.java:744)
                 at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConnectionManager.java:577)
                 at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:337)
                 ... 56 more
                2007-07-10 17:52:01,843 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.jta.JtaTransactionManager - Triggering afterCompletion synchronization
                2007-07-10 17:52:01,843 [http-127.0.0.1-8080-1] DEBUG org.springframework.transaction.support.TransactionSynchronizationManager - Clearing transaction synchronization
                2007-07-10 17:52:01,843 [http-127.0.0.1-8080-1] FATAL com.elasticpath.commons.filter.impl.EncodingFilter - Exception caught in EncodingFilter:
                org.springframework.orm.hibernate3.HibernateJdbcException: JDBC exception on Hibernate data access; nested exception is org.hibernate.exception.GenericJDBCException: Cannot open connection
                Caused by:
                org.hibernate.exception.GenericJDBCException: Cannot open connection
                 at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:91)
                 at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:79)
                 at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
                 at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
                 at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:318)
                 at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:109)
                 at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:93)
                 at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:86)
                 at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:171)
                 at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2163)
                 at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2118)
                 at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2374)
                 at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:84)
                 at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:243)
                 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:227)
                 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
                 at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296)
                 at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
                 at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:980)
                 at org.springframework.orm.hibernate3.SpringSessionSynchronization.beforeCommit(SpringSessionSynchronization.java:130)
                 at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:48)
                 at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:707)
                 at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:523)
                 at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:510)
                 at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:310)
                 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
                 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
                 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:209)
                 at $Proxy63.update(Unknown Source)
                 at com.elasticpath.sfweb.service.WebCustomerSessionServiceImpl.findOrCreateCustomerSession(WebCustomerSessionServiceImpl.java:138)
                 at com.elasticpath.sfweb.service.WebCustomerSessionServiceImpl.handleFilterRequest(WebCustomerSessionServiceImpl.java:61)
                 at com.elasticpath.sfweb.filters.CustomerSessionFilter.doFilter(CustomerSessionFilter.java:67)
                 at com.elasticpath.sfweb.filters.EpFilterToBeanProxy.doFilter(EpFilterToBeanProxy.java:137)
                 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                 at com.elasticpath.commons.filter.impl.EncodingFilter.handleFilter(EncodingFilter.java:137)
                 at com.elasticpath.commons.filter.impl.EncodingFilter.doFilter(EncodingFilter.java:80)
                 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                 at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
                 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                 at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
                 at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
                 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
                 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
                 at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
                 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
                 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
                 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
                 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
                 at java.lang.Thread.run(Thread.java:595)
                Caused by: org.jboss.util.NestedSQLException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >); - nested throwable: (org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >))
                 at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:94)
                 at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
                 at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:315)
                 ... 50 more
                Caused by: org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >)
                 at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:343)
                 at org.jboss.resource.connectionmanager.BaseConnectionManager2.reconnectManagedConnection(BaseConnectionManager2.java:518)
                 at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:399)
                 at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842)
                 at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
                 ... 52 more
                Caused by: javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >
                 at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener$TransactionSynchronization.checkEnlisted(TxConnectionManager.java:744)
                 at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConnectionManager.java:577)
                 at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:337)
                 ... 56 more
                2007-07-10 17:52:01,843 [http-127.0.0.1-8080-1] ERROR org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/myron].[jsp] - Servlet.service() for servlet jsp threw exception
                javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f579bfb:55f:4693ff55:3e status: ActionStatus.ABORT_ONLY >
                 at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener$TransactionSynchronization.checkEnlisted(TxConnectionManager.java:744)
                 at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConnectionManager.java:577)
                 at org.jboss.resource.connectionmanager.TxConnectionManager.managedConnectionReconnected(TxConnectionManager.java:337)
                 at org.jboss.resource.connectionmanager.BaseConnectionManager2.reconnectManagedConnection(BaseConnectionManager2.java:518)
                 at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:399)
                 at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842)
                 at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
                 at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
                 at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:315)
                 at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:109)
                 at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:93)
                 at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:86)
                 at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:171)
                 at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2163)
                 at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2118)
                 at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2374)
                 at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:84)
                 at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:243)
                 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:227)
                 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
                 at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296)
                 at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
                 at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:980)
                 at org.springframework.orm.hibernate3.SpringSessionSynchronization.beforeCommit(SpringSessionSynchronization.java:130)
                 at org.springframework.transaction.support.TransactionSynchronizationUtils.triggerBeforeCommit(TransactionSynchronizationUtils.java:48)
                 at org.springframework.transaction.support.AbstractPlatformTransactionManager.triggerBeforeCommit(AbstractPlatformTransactionManager.java:707)
                 at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:523)
                 at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:510)
                 at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:310)
                 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
                 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
                 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:209)
                 at $Proxy63.update(Unknown Source)
                 at com.elasticpath.sfweb.service.WebCustomerSessionServiceImpl.findOrCreateCustomerSession(WebCustomerSessionServiceImpl.java:138)
                 at com.elasticpath.sfweb.service.WebCustomerSessionServiceImpl.handleFilterRequest(WebCustomerSessionServiceImpl.java:61)
                 at com.elasticpath.sfweb.filters.CustomerSessionFilter.doFilter(CustomerSessionFilter.java:67)
                 at com.elasticpath.sfweb.filters.EpFilterToBeanProxy.doFilter(EpFilterToBeanProxy.java:137)
                 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                 at com.elasticpath.commons.filter.impl.EncodingFilter.handleFilter(EncodingFilter.java:137)
                 at com.elasticpath.commons.filter.impl.EncodingFilter.doFilter(EncodingFilter.java:80)
                 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                 at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
                 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                 at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
                 at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
                 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
                 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
                 at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
                 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
                 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
                 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
                 at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
                 at java.lang.Thread.run(Thread.java:595)