Description
When using OpenJPA with Firebird JDBC drivers after version "1.5.6", due to this driver fix: http://tracker.firebirdsql.org/browse/JDBC-91 the following exception will be thrown:
org.firebirdsql.jdbc.FBSQLException: The result set is closed
at org.firebirdsql.jdbc.AbstractResultSet.checkCursorMove(AbstractResultSet.java:217)
at org.firebirdsql.jdbc.AbstractResultSet.next(AbstractResultSet.java:249)
at org.apache.openjpa.lib.jdbc.DelegatingResultSet.next(DelegatingResultSet.java:106)
at org.apache.openjpa.jdbc.sql.ResultSetResult.nextInternal(ResultSetResult.java:222)
at org.apache.openjpa.jdbc.sql.SelectImpl$SelectResult.nextInternal(SelectImpl.java:2285)
at org.apache.openjpa.jdbc.sql.AbstractResult.next(AbstractResult.java:169)
at org.apache.openjpa.jdbc.meta.strats.StoreCollectionFieldStrategy.load(StoreCollectionFieldStrategy.java:476)
at org.apache.openjpa.jdbc.meta.FieldMapping.load(FieldMapping.java:802)
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:520)
... 14 more
To use OpenJPA with new Firedird JDBC drivers, defaultResultSetHoldable argument should be set to overcome the issue. It can be either set in JDBC url as follows:
jdbc:firebirdsql:embedded:M:/Lib/__Data/firebird/TE-FULL.gdb?defaultResultSetHoldable=True
Or it can be passed as a parameter to Firebird data source. For examle setting Firebird XA connection pool in Apache Tomcat 5.5 looks like:
<Resource name="jdbc/ODEdatabaseConnection" auth="Container" scope="Shareable"
factory="org.firebirdsql.pool.FBConnectionPoolDataSource"
type="org.firebirdsql.pool.FBConnectionPoolDataSource"
userName="SYSDBA" password="masterkey"
database="M:\Lib__Data\firebird\TE-FULL.gdb" defaultResultSetHoldable="true"
nonStandard="type=embedded"/>
Attachments
Issue Links
- is part of
-
OPENJPA-983 FirebirdDictionary improvements
- Closed
- is related to
-
OPENJPA-853 Informix cursor not open problem if synchronizeMapping set true
- Closed