1 Reply Latest reply on Jul 15, 2010 6:13 AM by smgi

    JDBCCacheLoader/HSQL : Error Failed to update node for fqn

    smgi

      Hi,

       

      I have a JDBCCacheLoader where I store several nodes with the SAME key (FQN).
      The execution is going well until I have the following error :
      JDBCCacheLoader - Failed to update node for fqn /Stringindex/secondaryTradeId/Seconsubnumber: File input/output errorerror java.io.IOException closing file - file ./workingdata/db.data in statement [update jbosscache set node=? where fqn=?]
      java.sql.SQLException: File input/output errorerror java.io.IOException closing file - file ./workingdata/db.data in statement [update jbosscache set node=? where fqn=?]
          at org.hsqldb.jdbc.Util.throwError(Unknown Source)
          at org.hsqldb.jdbc.jdbcPreparedStatement.executeUpdate(Unknown Source)
          at org.jboss.cache.loader.JDBCCacheLoader.updateNode(JDBCCacheLoader.java:1034)
          at org.jboss.cache.loader.JDBCCacheLoader.put(JDBCCacheLoader.java:310)
          at org.jboss.cache.loader.ChainingCacheLoader.put(ChainingCacheLoader.java:149)
          at org.jboss.cache.interceptors.CacheStoreInterceptor.invoke(CacheStoreInterceptor.java:216)
          at org.jboss.cache.interceptors.Interceptor.invoke(Interceptor.java:68)
          at org.jboss.cache.interceptors.TxInterceptor.handleNonTxMethod(TxInterceptor.java:364)
          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:157)
          at org.jboss.cache.TreeCache.invokeMethod(TreeCache.java:5710)
          at org.jboss.cache.TreeCache.put(TreeCache.java:3782)
          at org.jboss.cache.TreeCache.put(TreeCache.java:3720)

       

      Here my cacheloader configuration :
           <cacheloader>
              <class>org.jboss.cache.loader.JDBCCacheLoader</class>
              <properties>
                  cache.jdbc.table.name=jbosscache
                  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=OBJECT
                  cache.jdbc.parent.column=parent
                  cache.jdbc.driver=org.hsqldb.jdbcDriver
                  cache.jdbc.url=jdbc:hsqldb:file:localDatabase/workingdata/db
                  cache.jdbc.user=sa
                  cache.jdbc.password=
                         </properties>
              <async>false</async>
              <fetchPersistentState>false</fetchPersistentState>
              <ignoreModifications>false</ignoreModifications>
              <purgeOnStartup>false</purgeOnStartup>
          </cacheloader>

       

      Here the JDBCCacheLoader table :
      CREATE TABLE JBOSSCACHE(FQN VARCHAR(255) NOT NULL,NODE OBJECT,PARENT VARCHAR(255),INSERTEDDATE DATE DEFAULT CURRENT_DATE,CONSTRAINT JBOSSCACHE_PK PRIMARY KEY(FQN))

       

      The problem always occures for the same files size : when the db.data  file reaches 131072 ko and db.log reaches around 205000 ko, the problem occured.

       

      I try to insert differents value with the same FQN , so I ask me if it's a problem of size for the column NODE . This column is a BLOB type.

       

      Have you an idea?

       

      Thanks