0 Replies Latest reply on Nov 7, 2008 2:57 AM by vinudhara

    Connection not re-established using JDBCCacheLoader

    vinudhara

      Hi,
      we am using the JDBCCacheLoader for my cache.(Jboss cache version used is 1.4.1.SP8) CacheLoader Configuration for my cache is as follows,




      org.jboss.cache.loader.JDBCCacheLoader

      cache.jdbc.table.name=MyCache
      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=varchar(255)
      cache.jdbc.node.column=node
      cache.jdbc.node.type=blob
      cache.jdbc.parent.column=parent
      cache.jdbc.driver=oracle.jdbc.OracleDriver
      cache.jdbc.url=jdbc:oracle:thin:@myhost:1521:SID
      cache.jdbc.user=myusr
      cache.jdbc.password=myusrpwd
      cache.async.batchSize=10000
      cache.async.pollWait=100
      cache.async.returnOld=true
      cache.async.queueSize=100
      cache.async.put=true






      It is working fine as long as Database is up and running continously. When database goes down in middle, i am getting "IllegalStateException: Failed to load node : Closed Exception" from JDBCCacheLoader. This is fine. But when the Database comes up again and running properly, still getting the same error from JDBCCacheLoader.

      org.jboss.cache.loader.JDBCCacheLoader --> Failed to load node for fqn /MyNode: Closed Connection
      java.sql.SQLException: Closed Connection
      at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:153)
      at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:201)
      at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:306)
      at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:1009)
      at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:915)
      at org.jboss.cache.loader.JDBCCacheLoader.loadNode(JDBCCacheLoader.java:1121)
      at org.jboss.cache.loader.JDBCCacheLoader.get(JDBCCacheLoader.java:269)
      at org.jboss.cache.loader.AsyncCacheLoader.get(AsyncCacheLoader.java:171)
      at org.jboss.cache.interceptors.CacheLoaderInterceptor.loadData(CacheLoaderInterceptor.java:452)
      at org.jboss.cache.interceptors.CacheLoaderInterceptor.loadNode(CacheLoaderInterceptor.java:362)
      at org.jboss.cache.interceptors.CacheLoaderInterceptor.invoke(CacheLoaderInterceptor.java:197)
      at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
      at org.jboss.cache.interceptors.UnlockInterceptor.invoke(UnlockInterceptor.java:32)
      at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
      at org.jboss.cache.interceptors.ReplicationInterceptor.invoke(ReplicationInterceptor.java:39)
      at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
      at org.jboss.cache.interceptors.TxInterceptor.handleNonTxMethod(TxInterceptor.java:365)
      at org.jboss.cache.interceptors.TxInterceptor.invoke(TxInterceptor.java:160)
      at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
      at org.jboss.cache.interceptors.CacheMgmtInterceptor.invoke(CacheMgmtInterceptor.java:183)
      at org.jboss.cache.TreeCache.invokeMethod(TreeCache.java:5917)
      at org.jboss.cache.TreeCache.get(TreeCache.java:3550)

      The connection is not re-established eventhough database became up. It is using the same connection which is closed already when the Database gone down.

      Does anybody have idea? Is this problem fixed in any subsequent version?.

      Thanks in advance.