JBoss/Firebird Integration
petrkalina Jun 5, 2006 3:47 AMhi,
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