1 Reply Latest reply on Jan 22, 2007 2:09 PM by ryanlecompte

    JBossCache with Firebird (using Jaybird driver)

    ryanlecompte

      Hello,

      I am trying to JBoss Cache working with a Firebird database using the Jaybird JDBC driver. However, when I start up my example I get the following exception (see below). I am sure this is because of the BLOB type size limitations, however I'm not entirely sure. I know there is a workaround for Mysql to use "longblob" instead of "blob" in the configuration file. Is there something similar for Firebird? Any help is greatly appreciated.

      Thanks,
      Ryan

      Exception in thread "main" org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544351. unsuccessf
      ul metadata update
      key size too big for index JBOSSCACHE_PK
      at org.firebirdsql.jdbc.AbstractStatement.executeUpdate(AbstractStatement.java:281)
      at org.jboss.cache.loader.JDBCCacheLoader.start(JDBCCacheLoader.java:726)
      at org.jboss.cache.loader.AsyncCacheLoader.start(AsyncCacheLoader.java:303)
      at org.jboss.cache.loader.CacheLoaderManager.startCacheLoader(CacheLoaderManager.java:353)
      at org.jboss.cache.TreeCache.startService(TreeCache.java:1413)
      at org.jboss.cache.aop.PojoCache.startService(PojoCache.java:94)
      at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:274)
      at org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:181)
      at TestCache1.main(TestCache1.java:25)
      at org.firebirdsql.gds.GDSException: unsuccessful metadata update
      key size too big for index JBOSSCACHE_PK
      at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.readStatusVector(AbstractJavaGDSImpl.ja
      va:2113)
      at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.receiveResponse(AbstractJavaGDSImpl.jav
      a:2063)
      at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.iscDsqlExecute2(AbstractJavaGDSImpl.jav
      a:1155)
      at org.firebirdsql.gds.impl.GDSHelper.executeStatement(GDSHelper.java:223)
      at org.firebirdsql.jdbc.AbstractStatement.internalExecute(AbstractStatement.java:1109)
      at org.firebirdsql.jdbc.AbstractStatement.executeUpdate(AbstractStatement.java:277)
      at org.jboss.cache.loader.JDBCCacheLoader.start(JDBCCacheLoader.java:726)
      at org.jboss.cache.loader.AsyncCacheLoader.start(AsyncCacheLoader.java:303)
      at org.jboss.cache.loader.CacheLoaderManager.startCacheLoader(CacheLoaderManager.java:353)
      at org.jboss.cache.TreeCache.startService(TreeCache.java:1413)
      at org.jboss.cache.aop.PojoCache.startService(PojoCache.java:94)
      at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:274)
      at org.jboss.system.ServiceMBeanSupport.start(ServiceMBeanSupport.java:181)
      at TestCache1.main(TestCache1.java:25)

      Configuration file:


      org.jboss.cache.loader.JDBCCacheLoader
      <!-- same as the old CacheLoaderConfig attribute -->

      cache.jdbc.table.name=jbosscache
      cache.jdbc.table.create=true
      cache.jdbc.table.drop=true
      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=org.firebirdsql.jdbc.FBDriver
      cache.jdbc.url=jdbc:firebirdsql:127.0.0.1/3050:pango.fdb
      cache.jdbc.user=sysdba
      cache.jdbc.password=xxx

      <!-- whether the cache loader writes are asynchronous -->
      true
      <!-- only one cache loader in the chain may set fetchPersistentState to true.
      An exception is thrown if more than one cache loader sets this to true. -->
      true
      <!-- determines whether this cache loader ignores writes - defaults to false. -->
      false
      <!-- if set to true, purges the contents of this cache loader when the cache starts up.
      Defaults to false. -->
      false