JDBCCacheLoader/HSQL : Error Failed to update node for fqn
smgi Jul 12, 2010 11:09 AMHi,
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