2 Replies Latest reply on Jun 6, 2006 4:20 PM by weston.price

    JBoss/Firebird Integration

      hi,

      I'm experiencing problems when using JBoss CMP on top of Firebird. I'm not sure, wheather this is JBoss topic or if it's an issue of the driver/db. I'm trying to get information from the firebird forums on this topic as well, but any hints would be highly appreciated - like explaining what does the exception I'm getting means from the JBoss side..

      The exception looks like this:

      org.firebirdsql.jdbc.FBSQLException: Problem getting connection: org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImpl:XidImpl[FormatId=257, GlobalId=jarchive.nem.homolka.cz/6929968, BranchQual=, localId=6929968])
       at org.firebirdsql.jdbc.FBDataSource.getConnection(FBDataSource.java:88)
       at org.jboss.ejb.plugins.cmp.jdbc.JDBCAbstractQueryCommand.execute(JDBCAbstractQueryCommand.java:210)
       at org.jboss.ejb.plugins.cmp.jdbc.JDBCAbstractQueryCommand.execute(JDBCAbstractQueryCommand.java:128)
       at org.jboss.ejb.plugins.cmp.jdbc.JDBCFindEntitiesCommand.execute(JDBCFindEntitiesCommand.java:40)
       at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.findEntities(JDBCStoreManager.java:598)
       at org.jboss.ejb.plugins.CMPPersistenceManager.findEntities(CMPPersistenceManager.java:322)
       at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.findEntities(CachedConnectionInterceptor.java:245)
      ...
      


      The exception occurs when the server is under heavy load and gets excessive after some time... It runs JBoss 4.0.3SP1 and FB superserver 2 RC 1.

      This is my Datasource config snippet:

       <tx-connection-factory>
      
       <jndi-name>FirebirdDS</jndi-name>
      
       <xa-transaction/>
      
       <rar-name>jaybird-2.0.1.rar</rar-name>
       <connection-definition>javax.sql.DataSource</connection-definition>
      
       <config-property name="Database" type="java.lang.String">localhost:${jboss.server.data.dir}/firebird/data.fdb</config-property>
      
       <min-pool-size>20</min-pool-size>
       <max-pool-size>100</max-pool-size>
      
       <idle-timeout-minutes>10</idle-timeout-minutes>
      
       <blocking-timeout-millis>5000</blocking-timeout-millis>
      
       <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
       <metadata>
       <type-mapping>Firebird</type-mapping>
       </metadata>
       </tx-connection-factory>
      


      The whole thing looks like some kind of a connection leak, but as all the data access is done by CMP engine, it's difficult for me to track it down.

      Thanks for amy assistance or ideas.

      -- petr kalina