starting JDBCCacheLoader and transactions
vl_sadovnikov Jul 3, 2009 6:38 AMHello,
I've got a problem with JDBCCacheLoader and run out of ideas. Therefore any help will be appreciated.
We are using JBoss Cache 3.0.0 and our application is EJB module, being deployed to WebSphere 6.1. Oracle is used as database, and data source is managed by the application server
At initialization (processing of first request) we are getting exception from Oracle:
Caused by: org.jboss.cache.CacheException: Unable to start cache loaders at org.jboss.cache.loader.CacheLoaderManager.startCacheLoader(CacheLoaderManager.java:467) ... 112 more Caused by: java.sql.SQLException: ORA-02089: COMMIT is not allowed in a subordinate session at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216) at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:955) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285) at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3390) at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecute(WSJdbcPreparedStatement.java:735) at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.execute(WSJdbcPreparedStatement.java:503) at org.jboss.cache.loader.AdjListJDBCCacheLoader.createDummyTableIfNeeded(AdjListJDBCCacheLoader.java:296) at org.jboss.cache.loader.AdjListJDBCCacheLoader.start(AdjListJDBCCacheLoader.java:269) at org.jboss.cache.loader.JDBCCacheLoader.start(JDBCCacheLoader.java:376) at org.jboss.cache.loader.CacheLoaderManager.startCacheLoader(CacheLoaderManager.java:461) ... 112 more
The exception seems to be valid - transaction should not be committed here. However why does the loader try to createDummyTableIfNeeded ?
Its configuration seems to prevent from creation of the tables (these tables are actually already in the database after running the same code outside application server)
<loaders passivation="false" shared="true"> <preload> <node fqn="/" /> </preload> <loader class="org.jboss.cache.loader.JDBCCacheLoader" async="false" fetchPersistentState="false" ignoreModifications="false" purgeOnStartup="false"> <properties> cache.jdbc.datasource=jdbc/DataLoad cache.jdbc.table.name=Cached_Events cache.jdbc.table.create=false cache.jdbc.table.drop=false cache.jdbc.table.primarykey=jbosscache_pk cache.jdbc.fqn.column=fqn cache.jdbc.fqn.type=varchar2(255) cache.jdbc.node.column=node cache.jdbc.node.type=blob cache.jdbc.parent.column=parent </properties> </loader> </loaders>
Just in case, I'm posting below the last DEBUG message before exception trace (the last line is from our code):
[2009-07-03 11:10:42,151] [efault : 3] DEBUG FileLookup - Unable to find configuration file D:\work\nextgen\workspace\build\storages\buildtest\config\jboss-cache.xml in classpath; searching for this file on the filesystem instead. [2009-07-03 11:10:42,323] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of class org.jboss.cache.invocation.InvocationContextContainer that may have been injected from an external source. [2009-07-03 11:10:42,339] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface org.jboss.cache.factories.context.ContextFactory that may have been injected from an external source. [2009-07-03 11:10:42,339] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of class org.jboss.cache.interceptors.InterceptorChain that may have been injected from an external source. [2009-07-03 11:10:42,370] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of class org.jboss.cache.transaction.TransactionTable that may have been injected from an external source. [2009-07-03 11:10:42,386] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface javax.transaction.TransactionManager that may have been injected from an external source. [2009-07-03 11:10:42,386] [efault : 3] DEBUG GenericTransactionManagerLookup - Trying to lookup TransactionManager for JBoss, JRun4 [2009-07-03 11:10:42,386] [efault : 3] DEBUG GenericTransactionManagerLookup - Failed to perform a lookup for [java:/TransactionManager (JBoss, JRun4)] [2009-07-03 11:10:42,386] [efault : 3] DEBUG GenericTransactionManagerLookup - Trying to lookup TransactionManager for Resin 3.x [2009-07-03 11:10:42,386] [efault : 3] DEBUG GenericTransactionManagerLookup - Failed to perform a lookup for [java:comp/TransactionManager (Resin 3.x)] [2009-07-03 11:10:42,386] [efault : 3] DEBUG GenericTransactionManagerLookup - Trying to lookup TransactionManager for Sun Glassfish [2009-07-03 11:10:42,386] [efault : 3] DEBUG GenericTransactionManagerLookup - Failed to perform a lookup for [java:appserver/TransactionManager (Sun Glassfish)] [2009-07-03 11:10:42,386] [efault : 3] DEBUG GenericTransactionManagerLookup - Trying to lookup TransactionManager for Borland, Sun [2009-07-03 11:10:42,386] [efault : 3] DEBUG GenericTransactionManagerLookup - Failed to perform a lookup for [java:pm/TransactionManager (Borland, Sun)] [2009-07-03 11:10:42,386] [efault : 3] DEBUG GenericTransactionManagerLookup - Trying to lookup TransactionManager for BEA WebLogic [2009-07-03 11:10:42,667] [efault : 3] DEBUG GenericTransactionManagerLookup - Failed to perform a lookup for [javax.transaction.TransactionManager (BEA WebLogic)] [2009-07-03 11:10:42,667] [efault : 3] DEBUG GenericTransactionManagerLookup - Trying to lookup TransactionManager for Resin, Orion, JOnAS (JOTM) [2009-07-03 11:10:42,667] [efault : 3] DEBUG GenericTransactionManagerLookup - Failed to perform a lookup for [java:comp/UserTransaction (Resin, Orion, JOnAS (JOTM))] [2009-07-03 11:10:42,667] [efault : 3] DEBUG GenericTransactionManagerLookup - Trying WebSphere 5.1: com.ibm.ws.Transaction.TransactionManagerFactory [2009-07-03 11:10:42,682] [efault : 3] DEBUG GenericTransactionManagerLookup - Found WebSphere 5.1: com.ibm.ws.Transaction.TransactionManagerFactory [2009-07-03 11:10:42,682] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface org.jboss.cache.RPCManager that may have been injected from an external source. [2009-07-03 11:10:42,714] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of class org.jboss.cache.remoting.jgroups.ChannelMessageListener that may have been injected from an external source. [2009-07-03 11:10:42,714] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface org.jboss.cache.statetransfer.StateTransferManager that may have been injected from an external source. [2009-07-03 11:10:42,729] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface org.jboss.cache.marshall.Marshaller that may have been injected from an external source. [2009-07-03 11:10:42,745] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface org.jboss.cache.RegionManager that may have been injected from an external source. [2009-07-03 11:10:42,745] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface org.jboss.cache.lock.LockManager that may have been injected from an external source. [2009-07-03 11:10:42,761] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface org.jboss.cache.DataContainer that may have been injected from an external source. [2009-07-03 11:10:42,761] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface org.jboss.cache.NodeFactory that may have been injected from an external source. [2009-07-03 11:10:42,776] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of class org.jboss.cache.interceptors.InterceptorChain that may have been injected from an external source. [2009-07-03 11:10:42,792] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface org.jboss.cache.notifications.Notifier that may have been injected from an external source. [2009-07-03 11:10:42,839] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface org.jboss.cache.commands.CommandsFactory that may have been injected from an external source. [2009-07-03 11:10:42,839] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of class org.jboss.cache.buddyreplication.BuddyManager that may have been injected from an external source. [2009-07-03 11:10:42,839] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of class org.jboss.cache.buddyreplication.BuddyFqnTransformer that may have been injected from an external source. [2009-07-03 11:10:42,854] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of class org.jboss.cache.loader.CacheLoaderManager that may have been injected from an external source. [2009-07-03 11:10:42,886] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of class org.jboss.cache.mvcc.MVCCNodeHelper that may have been injected from an external source. [2009-07-03 11:10:42,901] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of class org.jboss.cache.config.CacheLoaderConfig that may have been injected from an external source. [2009-07-03 11:10:42,901] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of class org.jboss.cache.RegionRegistry that may have been injected from an external source. [2009-07-03 11:10:42,901] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface org.jboss.cache.statetransfer.StateTransferIntegrator that may have been injected from an external source. [2009-07-03 11:10:42,901] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface org.jboss.cache.statetransfer.StateTransferGenerator that may have been injected from an external source. [2009-07-03 11:10:42,917] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of class org.jboss.cache.buddyreplication.BuddyManager that may have been injected from an external source. [2009-07-03 11:10:42,917] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of class org.jboss.cache.batch.BatchContainer that may have been injected from an external source. [2009-07-03 11:10:42,917] [efault : 3] DEBUG CacheStatus - start() called while current state is INSTANTIATED -- call create() first [2009-07-03 11:10:42,917] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface org.jboss.cache.NodeFactory that may have been injected from an external source. [2009-07-03 11:10:42,917] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of class org.jboss.cache.interceptors.InterceptorChain that may have been injected from an external source. [2009-07-03 11:10:42,917] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface javax.transaction.TransactionManager that may have been injected from an external source. [2009-07-03 11:10:42,917] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface org.jboss.cache.RPCManager that may have been injected from an external source. [2009-07-03 11:10:42,917] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface org.jboss.cache.marshall.Marshaller that may have been injected from an external source. [2009-07-03 11:10:42,917] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface org.jboss.cache.RegionManager that may have been injected from an external source. [2009-07-03 11:10:42,917] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface org.jboss.cache.lock.LockManager that may have been injected from an external source. [2009-07-03 11:10:42,917] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of class org.jboss.cache.buddyreplication.BuddyFqnTransformer that may have been injected from an external source. [2009-07-03 11:10:42,917] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of class org.jboss.cache.interceptors.InterceptorChain that may have been injected from an external source. [2009-07-03 11:10:42,917] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface org.jboss.cache.factories.context.ContextFactory that may have been injected from an external source. [2009-07-03 11:10:42,917] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface org.jboss.cache.commands.CommandsFactory that may have been injected from an external source. [2009-07-03 11:10:42,917] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of class org.jboss.cache.buddyreplication.BuddyManager that may have been injected from an external source. [2009-07-03 11:10:42,917] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of class org.jboss.cache.loader.CacheLoaderManager that may have been injected from an external source. [2009-07-03 11:10:42,917] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of class org.jboss.cache.config.CacheLoaderConfig that may have been injected from an external source. [2009-07-03 11:10:42,932] [efault : 3] DEBUG DataContainerImpl - Setting rootInternal to NodeReference{delegate=UnversionedNode[ /]} [2009-07-03 11:10:42,932] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface org.jboss.cache.statetransfer.StateTransferManager that may have been injected from an external source. [2009-07-03 11:10:42,948] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface org.jboss.cache.statetransfer.StateTransferIntegrator that may have been injected from an external source. [2009-07-03 11:10:42,948] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of interface org.jboss.cache.statetransfer.StateTransferGenerator that may have been injected from an external source. [2009-07-03 11:10:42,948] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of class org.jboss.cache.buddyreplication.BuddyManager that may have been injected from an external source. [2009-07-03 11:10:42,948] [efault : 3] DEBUG ComponentRegistry - Looking in configuration for an instance of class org.jboss.cache.batch.BatchContainer that may have been injected from an external source. [2009-07-03 11:10:42,964] [efault : 3] DEBUG InterceptorChain - Interceptor chain is: InterceptorChain{ >> org.jboss.cache.interceptors.CallInterceptor >> org.jboss.cache.interceptors.EvictionInterceptor >> org.jboss.cache.interceptors.CacheStoreInterceptor >> org.jboss.cache.interceptors.MVCCLockingInterceptor >> org.jboss.cache.interceptors.CacheLoaderInterceptor >> org.jboss.cache.interceptors.NotificationInterceptor >> org.jboss.cache.interceptors.TxInterceptor >> org.jboss.cache.interceptors.InvocationContextInterceptor } [2009-07-03 11:10:42,979] [efault : 3] DEBUG VersionAwareMarshaller - Started with version 3.0.0 and versionInt 30 [2009-07-03 11:10:42,979] [efault : 3] DEBUG VersionAwareMarshaller - Using default marshaller class class org.jboss.cache.marshall.CacheMarshaller300 [2009-07-03 11:10:43,104] [efault : 3] ERROR ErrorHandler - Error in invocation of public void com.fiserv.nextgen.detectionpipeline.DetectionPipelineBean.processEvent(com.fiserv.domain.eventmodel.api.IAcceptedEvent) with parameters [11400 {AtmFailedAuthentication,0,0,73}]
Any suggestions?