Question regarding JDBCCacheloader
jorgemoralespou_2 Oct 8, 2008 6:51 AMHi,
I have a JBC 1.4.1.SP10 configured with a JDBCCacheLoader. I`m seeing that when I query cache there is an access to database, although the queried object is in cache. Also, sometimes, I have problems qith my database connection, and I`m getting exceptions querying for objects that are in cache. I personally think taht if an object is found in cache, JBC should not query its cacheloaders to get that object. If that is the case, I rather go directly to database and not use JBC at all.
2008-10-08 10:18:41,888 ERROR [org.jboss.cache.loader.JDBCCacheLoader] Failed to load node for fqn /APPLICATION_CREDENTIALS/Agend aUnica_SPA:-:AgendaUnica_AA:-:AgendaUnica_AIG: No ManagedConnections available within configured blocking timeout ( 30000 [ms] ); - nested throwable: (javax.resource.ResourceException: No ManagedConnections available within configured blocking timeout ( 30000 [ms] )) org.jboss.util.NestedSQLException: No ManagedConnections available within configured blocking timeout ( 30000 [ms] ); - nested throw able: (javax.resource.ResourceException: No ManagedConnections available within configured blocking timeout ( 30000 [ms] )) at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:94) at org.jboss.cache.loader.SOMJDBCCacheLoader$ManagedConnectionFactory.getConnection(Unknown Source) at org.jboss.cache.loader.SOMJDBCCacheLoader.loadNode(Unknown Source) at org.jboss.cache.loader.SOMJDBCCacheLoader.put(Unknown Source) at org.jboss.cache.loader.SOMJDBCCacheLoader.put(Unknown Source) at org.jboss.cache.loader.SOMJDBCCacheLoader.put(Unknown Source) at org.jboss.cache.loader.AsyncCacheLoader$AsyncProcessor.put(AsyncCacheLoader.java:449) at org.jboss.cache.loader.AsyncCacheLoader$AsyncProcessor.run0(AsyncCacheLoader.java:405) at org.jboss.cache.loader.AsyncCacheLoader$AsyncProcessor.run(AsyncCacheLoader.java:370) at java.lang.Thread.run(Thread.java:595) Caused by: javax.resource.ResourceException: No ManagedConnections available within configured blocking timeout ( 30000 [ms] ) at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:301) at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:51 2) at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:341) at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:315) at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:396) at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManag er2.java:842) at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88) ... 9 more
My cache is set as follows:
<attribute name="UseRegionBasedMarshalling">true</attribute> <attribute name="InactiveOnStartup">false</attribute> <attribute name="CacheLoaderConfiguration"> <config> <passivation>false</passivation> <preload>/</preload> <shared>true</shared> <cacheloader> <class>org.jboss.cache.loader.JDBCCacheLoader</class> <properties> cache.jdbc.datasource=java:jdbc/som cache.jdbc.table.name=core_data cache.jdbc.table.create=true cache.jdbc.table.drop=false cache.jdbc.table.primarykey=jbosscache_pk cache.jdbc.fqn.column=fqn cache.jdbc.fqn.type=varchar(255) cache.jdbc.node.column=node cache.jdbc.node.type=blob cache.jdbc.parent.column=parent </properties> <async>true</async> <fetchPersistentState>true</fetchPersistentState> <ignoreModifications>false</ignoreModifications> </cacheloader> </config> </attribute>