5 Replies Latest reply on Feb 16, 2008 3:10 AM by neilac333

    Odd Transactional Exception on WebLogic 9.2

    neilac333 Novice

      Using Seam 2.0 GA on WebLogic 9.2, I am trying to simply populate a dropdown list with values from a database table. The code to do so is in a Seam-managed persistence component and has been tested and found to work. My Facelet then calls on this component to populate the dropdown. When I do so, I get this:

      Caused by: java.sql.SQLException: Transaction BEA1-02F463ADA554FEA2ACBA not active anymore. tx status = Marked rollback. [Reason=weblogic.transaction.internal.AppSetRollbackOnlyException]
       at weblogic.jdbc.jts.Driver.getTransaction(Driver.java:564)
       at weblogic.jdbc.jts.Driver.connect(Driver.java:121)
       at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:359)
       at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69)
       at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
       at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
       at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(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:66)
       at gov.nist.srm.persistence.QueryServiceImpl.getTechnicalCategories(QueryServiceImpl.java:31)
       at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
       at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source)
       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:56)
       at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)
       at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
       at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
       at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
       at org.jboss.seam.transaction.TransactionInterceptor$1.work(TransactionInterceptor.java:38)
      
      


      As I said, this is a basic readonly operation from the database. At no point do I call for any rollback. Also, the datasource has been tested in the WebLogic console and found to work.

      Here are the properties in persistence.xml:

       <properties>
       <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle9Dialect"/>
       <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/>
       <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.WeblogicTransactionManagerLookup"/>
       <property name="hibernate.transaction.factory_class" value="org.hibernate.transaction.CMTTransactionFactory"/>
      </properties>
      


      Finally, here is the code:
      @Name("queryService")
      public class QueryServiceImpl extends Object implements QueryService, Serializable {
       @Transactional(TransactionPropagationType.SUPPORTS)
       public List<Category> getCategories() { ... }
      .
      .
      .
      }
      


      And here is the reference in the Facelet:

      <select jsfc="h:selectOneMenu" id="categoryDropdown" value="#{myAction.category}">
       <s:selectItems value="#{queryService.categories}" var="category" label="#{category.name}" noSelectionLabel="" />
      </select>
      


      I should note that if I remove that @Transactional annotation, there is no change.

      Any insight into what causes this bizarre rollback on WebLogic is appreciated. Please let me know if you need more information.

      Thanks.

        • 1. Re: Odd Transactional Exception on WebLogic 9.2
          Jay Balunas Master

          Can you turn on weblogic/hibernate logging to print out when the rollback actually happens?

          Are there any other exceptions in the log?

          -Jay

          • 2. Re: Odd Transactional Exception on WebLogic 9.2
            neilac333 Novice

            From my application log:

            15 Feb 2008 13:19:02,245: DEBUG org.hibernate.hql.ast.ErrorCounter - throwQueryException() : no errors
            15 Feb 2008 13:19:02,245: DEBUG org.hibernate.hql.ast.QueryTranslatorImpl - HQL: from com.myApp.persistence.TechnicalCategory
            15 Feb 2008 13:19:02,245: DEBUG org.hibernate.hql.ast.QueryTranslatorImpl - SQL: select technicalc0_.ID as ID0_, technicalc0_.CREATED_BY_USER_ID as CREATED8_0_, technicalc0_.DATE_CREATED as DATE2_0_, technicalc0_.DATE_UPDATED as DATE3_0_, technicalc0_.UPDATED_BY_USER_ID as UPDATED7_0_, technicalc0_.VERSION as VERSION0_, technicalc0_.NAME as NAME0_, technicalc0_.CATEGORY_NUMBER as CATEGORY6_0_ from CATEGORY technicalc0_
            15 Feb 2008 13:19:02,245: DEBUG org.hibernate.hql.ast.ErrorCounter - throwQueryException() : no errors
            15 Feb 2008 13:19:02,245: DEBUG org.hibernate.engine.query.HQLQueryPlan - HQL param location recognition took 0 mills (from TechnicalCategory)
            15 Feb 2008 13:19:02,245: DEBUG org.hibernate.impl.SessionFactoryImpl - Checking 0 named SQL queries
            15 Feb 2008 13:19:29,294: DEBUG org.richfaces.skin.SkinFactory - Class name for SkinFactory set to org.richfaces.skin.SkinFactoryImpl by META-INF/services
            15 Feb 2008 13:19:29,304: DEBUG org.richfaces.skin.SkinFactoryImpl - Create new Skin instance for name classic
            15 Feb 2008 13:20:19,297: DEBUG org.hibernate.impl.SessionImpl - opened session at timestamp: 4927896039903232
            15 Feb 2008 13:20:19,327: DEBUG org.hibernate.jdbc.JDBCContext - TransactionFactory reported no active transaction; Synchronization not registered
            15 Feb 2008 13:20:19,327: DEBUG org.hibernate.ejb.AbstractEntityManagerImpl - Looking for a JTA transaction to join
            15 Feb 2008 13:20:19,327: WARN org.hibernate.ejb.AbstractEntityManagerImpl - Cannot join transaction: do not override hibernate.transaction.factory_class
            15 Feb 2008 13:20:19,638: DEBUG org.hibernate.jdbc.JDBCContext - TransactionFactory reported no active transaction; Synchronization not registered
            15 Feb 2008 13:20:19,638: DEBUG org.hibernate.impl.SessionImpl - setting flush mode to: MANUAL
            15 Feb 2008 13:20:19,648: DEBUG org.hibernate.jdbc.JDBCContext - TransactionFactory reported no active transaction; Synchronization not registered
            15 Feb 2008 13:20:19,648: DEBUG org.hibernate.jdbc.JDBCContext - TransactionFactory reported no active transaction; Synchronization not registered
            15 Feb 2008 13:20:19,658: DEBUG org.hibernate.engine.query.QueryPlanCache - located HQL query plan in cache (from TechnicalCategory)
            15 Feb 2008 13:20:19,708: DEBUG org.hibernate.jdbc.JDBCContext - TransactionFactory reported no active transaction; Synchronization not registered
            15 Feb 2008 13:20:19,708: DEBUG org.hibernate.jdbc.JDBCContext - TransactionFactory reported no active transaction; Synchronization not registered
            15 Feb 2008 13:20:19,708: DEBUG org.hibernate.engine.query.QueryPlanCache - located HQL query plan in cache (from TechnicalCategory)
            15 Feb 2008 13:20:19,708: DEBUG org.hibernate.jdbc.JDBCContext - TransactionFactory reported no active transaction; Synchronization not registered
            15 Feb 2008 13:20:19,718: DEBUG org.hibernate.engine.query.HQLQueryPlan - find: from TechnicalCategory
            15 Feb 2008 13:20:19,718: DEBUG org.hibernate.engine.QueryParameters - named parameters: {}
            15 Feb 2008 13:20:19,728: DEBUG org.hibernate.jdbc.JDBCContext - TransactionFactory reported no active transaction; Synchronization not registered
            15 Feb 2008 13:20:19,788: DEBUG org.hibernate.jdbc.JDBCContext - TransactionFactory reported no active transaction; Synchronization not registered
            15 Feb 2008 13:20:19,798: DEBUG org.hibernate.jdbc.JDBCContext - TransactionFactory reported no active transaction; Synchronization not registered
            15 Feb 2008 13:20:19,798: DEBUG org.hibernate.jdbc.AbstractBatcher - about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
            15 Feb 2008 13:20:19,798: DEBUG org.hibernate.jdbc.ConnectionManager - opening JDBC connection
            15 Feb 2008 13:20:19,858: DEBUG org.hibernate.util.JDBCExceptionReporter - Cannot open connection [???]
            java.sql.SQLException: Transaction BEA1-02FA63ADA554 not active anymore. tx status = Rolled back. [Reason=weblogic.transaction.internal.TimedOutException: Transaction timed out after 33 seconds
            BEA1-02FA63ADA554]
             at weblogic.jdbc.jts.Driver.getTransaction(Driver.java:564)
             at weblogic.jdbc.jts.Driver.connect(Driver.java:121)
             at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:359)
             at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69)
             at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
             at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
             at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(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:66)
             at com.myApp.persistence.QueryServiceImpl.getTechnicalCategories(QueryServiceImpl.java:31)
             at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
             at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source)
             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:56)
             at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)
             at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
             at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
             at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
             at org.jboss.seam.transaction.TransactionInterceptor$1.work(TransactionInterceptor.java:38)
            15 Feb 2008 13:20:19,868: WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: null
            15 Feb 2008 13:20:19,868: ERROR org.hibernate.util.JDBCExceptionReporter - Transaction BEA1-02FA63ADA554 not active anymore. tx status = Rolled back. [Reason=weblogic.transaction.internal.TimedOutException: Transaction timed out after 33 seconds
            BEA1-02FA63ADA554]
            15 Feb 2008 13:20:19,868: DEBUG org.hibernate.jdbc.JDBCContext - after autocommit
            15 Feb 2008 13:20:19,868: DEBUG org.hibernate.impl.SessionImpl - after transaction completion
            15 Feb 2008 13:20:19,898: DEBUG org.hibernate.ejb.AbstractEntityManagerImpl - mark transaction for rollback
            15 Feb 2008 13:20:19,898: DEBUG org.hibernate.jdbc.JDBCContext - TransactionFactory reported no active transaction; Synchronization not registered
            15 Feb 2008 13:20:19,898: ERROR org.hibernate.ejb.AbstractEntityManagerImpl - Unable to mark for rollback on PersistenceException:
            java.lang.IllegalStateException: Cannot mark the transaction for rollback. xid=BEA1-02FA63ADA554, status=Rolled back. [Reason=weblogic.transaction.internal.TimedOutException: Transaction timed out after 33 seconds
            BEA1-02FA63ADA554]
             at weblogic.transaction.internal.TransactionImpl.throwIllegalStateException(TransactionImpl.java:1793)
             at weblogic.transaction.internal.TransactionImpl.setRollbackOnly(TransactionImpl.java:534)
             at weblogic.transaction.internal.TransactionManagerImpl.setRollbackOnly(TransactionManagerImpl.java:316)
             at weblogic.transaction.internal.TransactionManagerImpl.setRollbackOnly(TransactionManagerImpl.java:309)
             at org.hibernate.ejb.AbstractEntityManagerImpl.markAsRollback(AbstractEntityManagerImpl.java:433)
             at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:588)
             at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:630)
             at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:75)
             at com.myApp.persistence.QueryServiceImpl.getTechnicalCategories(QueryServiceImpl.java:31)
             at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
             at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source)
             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:56)
             at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)
             at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
             at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
             at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
             at org.jboss.seam.transaction.TransactionInterceptor$1.work(TransactionInterceptor.java:38)
             at org.jboss.seam.util.Work.workInTransaction(Work.java:40)
             at org.jboss.seam.transaction.TransactionInterceptor.aroundInvoke(TransactionInterceptor.java:32)
             at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
             at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)
             at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
             at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:106)
             at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:155)
             at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:91)
             at com.myApp.persistence.QueryServiceImpl_$$_javassist_3.getTechnicalCategories()Ljava.util.List;(QueryServiceImpl_$$_javassist_3.java:???)
            15 Feb 2008 13:20:20,439: DEBUG org.hibernate.jdbc.JDBCContext - TransactionFactory reported no active transaction; Synchronization not registered
            15 Feb 2008 13:20:20,439: DEBUG org.hibernate.jdbc.JDBCContext - TransactionFactory reported no active transaction; Synchronization not registered
            15 Feb 2008 13:20:20,439: DEBUG org.hibernate.engine.query.QueryPlanCache - located HQL query plan in cache (from TechnicalCategory)
            15 Feb 2008 13:20:20,439: DEBUG org.hibernate.jdbc.JDBCContext - TransactionFactory reported no active transaction; Synchronization not registered
            15 Feb 2008 13:20:20,439: DEBUG org.hibernate.jdbc.JDBCContext - TransactionFactory reported no active transaction; Synchronization not registered
            15 Feb 2008 13:20:20,439: DEBUG org.hibernate.engine.query.QueryPlanCache - located HQL query plan in cache (from TechnicalCategory)
            15 Feb 2008 13:20:20,439: DEBUG org.hibernate.jdbc.JDBCContext - TransactionFactory reported no active transaction; Synchronization not registered
            15 Feb 2008 13:20:20,439: DEBUG org.hibernate.engine.query.HQLQueryPlan - find: from TechnicalCategory
            15 Feb 2008 13:20:20,439: DEBUG org.hibernate.engine.QueryParameters - named parameters: {}
            15 Feb 2008 13:20:20,439: DEBUG org.hibernate.jdbc.JDBCContext - TransactionFactory reported no active transaction; Synchronization not registered
            15 Feb 2008 13:20:20,439: DEBUG org.hibernate.jdbc.JDBCContext - TransactionFactory reported no active transaction; Synchronization not registered
            15 Feb 2008 13:20:20,439: DEBUG org.hibernate.jdbc.JDBCContext - TransactionFactory reported no active transaction; Synchronization not registered
            15 Feb 2008 13:20:20,439: DEBUG org.hibernate.jdbc.AbstractBatcher - about to open PreparedStatement (open PreparedStatements: 1, globally: 1)
            15 Feb 2008 13:20:20,439: DEBUG org.hibernate.jdbc.ConnectionManager - opening JDBC connection
            15 Feb 2008 13:20:20,439: DEBUG org.hibernate.util.JDBCExceptionReporter - Cannot open connection [???]
            java.sql.SQLException: Transaction BEA1-02FA63ADA554 not active anymore. tx status = Rolled back. [Reason=weblogic.transaction.internal.TimedOutException: Transaction timed out after 33 seconds
            BEA1-02FA63ADA554]
             at weblogic.jdbc.jts.Driver.getTransaction(Driver.java:564)
             at weblogic.jdbc.jts.Driver.connect(Driver.java:121)
             at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:359)
             at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:69)
             at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
             at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
             at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(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:66)
             at com.myApp.persistence.QueryServiceImpl.getTechnicalCategories(QueryServiceImpl.java:31)
             at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
             at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source)
             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:56)
             at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)
             at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
             at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
             at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
             at org.jboss.seam.transaction.TransactionInterceptor$1.work(TransactionInterceptor.java:38)
            15 Feb 2008 13:20:20,439: WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: null
            15 Feb 2008 13:20:20,439: ERROR org.hibernate.util.JDBCExceptionReporter - Transaction BEA1-02FA63ADA554 not active anymore. tx status = Rolled back. [Reason=weblogic.transaction.internal.TimedOutException: Transaction timed out after 33 seconds
            BEA1-02FA63ADA554]
            15 Feb 2008 13:20:20,439: DEBUG org.hibernate.jdbc.JDBCContext - after autocommit
            15 Feb 2008 13:20:20,439: DEBUG org.hibernate.impl.SessionImpl - after transaction completion
            15 Feb 2008 13:20:20,439: DEBUG org.hibernate.ejb.AbstractEntityManagerImpl - mark transaction for rollback
            15 Feb 2008 13:20:20,439: DEBUG org.hibernate.jdbc.JDBCContext - TransactionFactory reported no active transaction; Synchronization not registered
            


            Please let me know if you need more.

            Thanks.

            • 3. Re: Odd Transactional Exception on WebLogic 9.2
              neilac333 Novice

              I should also mention that my driver is weblogic.jdbc.oracle.OracleDriver.

              Here also is some stuff in my WL server log. It means nothing to me, but it may to you:

              ####<Feb 15, 2008 1:08:11 PM EST> <Error> <JDBC> <TSP617758> <AdminServer> <[ACTIVE] ExecuteThread: '17' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <BEA1-02F863ADA554FEA2ACBA> <> <1203098891046> <BEA-001112> <Test "select count(*) from SELECT 1 FROM DUAL" set up for pool "AppPool" failed with exception: "java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-00903: invalid table name
              ".>
              ####<Feb 15, 2008 1:09:20 PM EST> <Error> <JDBC> <TSP617758> <AdminServer> <[ACTIVE] ExecuteThread: '22' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1203098960737> <BEA-001112> <Test "select count(*) from SELECT 1 FROM DUAL" set up for pool "AppPool" failed with exception: "java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-00903: invalid table name
              ".>
              ####<Feb 15, 2008 1:11:20 PM EST> <Error> <JDBC> <TSP617758> <AdminServer> <[ACTIVE] ExecuteThread: '15' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1203099080732> <BEA-001112> <Test "select count(*) from SELECT 1 FROM DUAL" set up for pool "AppPool" failed with exception: "java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-00903: invalid table name
              ".>
              ####<Feb 15, 2008 1:13:20 PM EST> <Error> <JDBC> <TSP617758> <AdminServer> <[ACTIVE] ExecuteThread: '17' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1203099200737> <BEA-001112> <Test "select count(*) from SELECT 1 FROM DUAL" set up for pool "AppPool" failed with exception: "java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-00903: invalid table name
              ".>
              ####<Feb 15, 2008 1:15:20 PM EST> <Error> <JDBC> <TSP617758> <AdminServer> <[ACTIVE] ExecuteThread: '17' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1203099320732> <BEA-001112> <Test "select count(*) from SELECT 1 FROM DUAL" set up for pool "AppPool" failed with exception: "java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-00903: invalid table name
              ".>
              ####<Feb 15, 2008 1:17:20 PM EST> <Error> <JDBC> <TSP617758> <AdminServer> <[ACTIVE] ExecuteThread: '22' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1203099440737> <BEA-001112> <Test "select count(*) from SELECT 1 FROM DUAL" set up for pool "AppPool" failed with exception: "java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-00903: invalid table name
              ".>
              ####<Feb 15, 2008 1:18:54 PM EST> <Error> <JDBC> <TSP617758> <AdminServer> <[ACTIVE] ExecuteThread: '20' for queue: 'weblogic.kernel.Default (self-tuning)'> <weblogic> <> <> <1203099534854> <BEA-001112> <Test "select count(*) from SELECT 1 FROM DUAL" set up for pool "AppPool" failed with exception: "java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-00903: invalid table name
              ".>
              ####<Feb 15, 2008 1:19:20 PM EST> <Error> <JDBC> <TSP617758> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1203099560732> <BEA-001112> <Test "select count(*) from SELECT 1 FROM DUAL" set up for pool "AppPool" failed with exception: "java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-00903: invalid table name
              ".>
              ####<Feb 15, 2008 1:21:20 PM EST> <Error> <JDBC> <TSP617758> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1203099680737> <BEA-001112> <Test "select count(*) from SELECT 1 FROM DUAL" set up for pool "AppPool" failed with exception: "java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-00903: invalid table name
              ".>
              ####<Feb 15, 2008 1:23:20 PM EST> <Error> <JDBC> <TSP617758> <AdminServer> <[ACTIVE] ExecuteThread: '20' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1203099800732> <BEA-001112> <Test "select count(*) from SELECT 1 FROM DUAL" set up for pool "AppPool" failed with exception: "java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-00903: invalid table name
              ".>
              ####<Feb 15, 2008 1:25:20 PM EST> <Error> <JDBC> <TSP617758> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1203099920737> <BEA-001112> <Test "select count(*) from SELECT 1 FROM DUAL" set up for pool "AppPool" failed with exception: "java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-00903: invalid table name
              ".>
              ####<Feb 15, 2008 1:27:20 PM EST> <Error> <JDBC> <TSP617758> <AdminServer> <[ACTIVE] ExecuteThread: '19' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1203100040732> <BEA-001112> <Test "select count(*) from SELECT 1 FROM DUAL" set up for pool "AppPool" failed with exception: "java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-00903: invalid table name
              ".>
              ####<Feb 15, 2008 1:29:20 PM EST> <Error> <JDBC> <TSP617758> <AdminServer> <[ACTIVE] ExecuteThread: '20' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1203100160737> <BEA-001112> <Test "select count(*) from SELECT 1 FROM DUAL" set up for pool "AppPool" failed with exception: "java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-00903: invalid table name
              ".>
              ####<Feb 15, 2008 1:31:20 PM EST> <Error> <JDBC> <TSP617758> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1203100280731> <BEA-001112> <Test "select count(*) from SELECT 1 FROM DUAL" set up for pool "AppPool" failed with exception: "java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-00903: invalid table name
              ".>
              ####<Feb 15, 2008 1:33:20 PM EST> <Error> <JDBC> <TSP617758> <AdminServer> <[ACTIVE] ExecuteThread: '19' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1203100400736> <BEA-001112> <Test "select count(*) from SELECT 1 FROM DUAL" set up for pool "AppPool" failed with exception: "java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-00903: invalid table name
              ".>
              ####<Feb 15, 2008 1:35:20 PM EST> <Error> <JDBC> <TSP617758> <AdminServer> <[ACTIVE] ExecuteThread: '19' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1203100520731> <BEA-001112> <Test "select count(*) from SELECT 1 FROM DUAL" set up for pool "AppPool" failed with exception: "java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-00903: invalid table name
              ".>
              ####<Feb 15, 2008 1:37:20 PM EST> <Error> <JDBC> <TSP617758> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1203100640736> <BEA-001112> <Test "select count(*) from SELECT 1 FROM DUAL" set up for pool "AppPool" failed with exception: "java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-00903: invalid table name
              ".>
              ####<Feb 15, 2008 1:37:32 PM EST> <Warning> <netuix> <TSP617758> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <weblogic> <> <> <1203100652754> <BEA-423420> <Redirect is executed in begin or refresh action. Redirect url is /console/console.portal?_nfpb=true&_pageLabel=HomePage1.>
              ####<Feb 15, 2008 1:39:20 PM EST> <Error> <JDBC> <TSP617758> <AdminServer> <[ACTIVE] ExecuteThread: '20' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1203100760731> <BEA-001112> <Test "select count(*) from SELECT 1 FROM DUAL" set up for pool "AppPool" failed with exception: "java.sql.SQLException: [BEA][Oracle JDBC Driver][Oracle]ORA-00903: invalid table name
              ".>
              
              


              • 4. Re: Odd Transactional Exception on WebLogic 9.2
                neilac333 Novice

                So here is something interesting!

                I added some more debug statements to my code and found this:

                15 Feb 2008 15:39:19,847: DEBUG com.myapp.persistence.QueryServiceImpl - Executed query
                15 Feb 2008 15:39:19,847: DEBUG com.myapp.persistence.QueryServiceImpl - Ending method getCategories with 29 categories.
                15 Feb 2008 15:39:21,499: DEBUG com.myapp.persistence.QueryServiceImpl - Starting method getCategories
                15 Feb 2008 15:39:21,499: DEBUG org.hibernate.engine.query.QueryPlanCache - located HQL query plan in cache (from Category)
                15 Feb 2008 15:39:21,499: DEBUG org.hibernate.engine.query.QueryPlanCache - located HQL query plan in cache (from Category)
                15 Feb 2008 15:39:21,499: DEBUG org.hibernate.engine.query.HQLQueryPlan - find: from Category
                15 Feb 2008 15:39:21,499: DEBUG org.hibernate.engine.QueryParameters - named parameters: {}
                15 Feb 2008 15:39:21,499: DEBUG org.hibernate.jdbc.AbstractBatcher - about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
                15 Feb 2008 15:39:21,499: DEBUG org.hibernate.jdbc.ConnectionManager - opening JDBC connection
                15 Feb 2008 15:39:21,569: DEBUG org.hibernate.util.JDBCExceptionReporter - Cannot open connection [???]
                java.sql.SQLException: Transaction BEA1-02FE63ADA554FEA2ACBA not active anymore. tx status = Marked rollback. [Reason=weblogic.transaction.internal.AppSetRollbackOnlyException]
                



                Put a bit more succinctly, the getCategories method actually works! I see the categories themsleves listed as they should be in the log. But for some reason, the getCategories method gets called again, and it is that second call that generates the exception I described originally.

                Any insight into why this might happen is greatly appreciated.

                Thanks.

                • 5. Re: Odd Transactional Exception on WebLogic 9.2
                  neilac333 Novice

                  Though this might be a long shot, it occurred to me that I might be using <s:selectItems> incorrectly. In my case, when I do the following in my Facelet as described above:

                  <select jsfc="h:selectOneMenu" id="categoryDropdown" value="#{myAction.category}">
                   <s:selectItems value="#{queryService.categories}" var="category" label="#{category.name}" noSelectionLabel="" />
                  </select>
                  


                  ...the method queryService.categories returns a List < Category > object. It was my assumption that the Seam control constructs a List< SelectItem > from that, but I might be mistaken.

                  Any clarification here is much appreciated. It may have absolutely nothing to do with this odd problem, but at this point I am desperate. I am sure you can relate.

                  Thanks.