4 Replies Latest reply on Oct 9, 2008 3:52 AM by Jorge Morales

    Question regarding JDBCCacheloader

    Jorge Morales Master

      Hi,
      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>