Subject | Problems with FBXaDataSource in ApplicationServer |
---|---|
Author | Sascha Horn |
Post date | 2014-03-04T18:51:08Z |
Hi all,
i am using JBoss 7.3.0 with Jaybird 2.2.4 to connect to an Firebird
SuperServer.
In a ejb with container managed transaction i am using a
org.firebirdsql.ds.FBXADataSource to get a Firebird connection.
From this connections i create two statements.
Statement on executes a query and gets an resultset.
While resultset.next() i iterate though the rows and execute an other
query on statement2.
executing statement2 causes the resultset from statement1 is closed.
I googled a bit...
The solution should be to use setautocommit(false), but this is not
possible in an container managed transaction.
as a workarround i use setDefaultResultSetHoldable(true).
In my opinion the result set may not be closed within an managed
transaction, because commit and rollback should be invoked from the
managed transaction.
Can anyone confirm that this a bug in Jaybird driver?
Or am i doing something wrong?
An other problem is, that when rolling back the container managed
transaction every time the following exception occurs:
org.firebirdsql.jca.FBXAException: invalid database handle (no active
connection)
With an oracle DB and the matching oracle driver the rollback works, so
i guess it is a driver problem?
Thanks in advance.
Regards,
--
Mit freundlichen GrÃŒÃen,
Sascha Horn
Dipl. Ing. Informationstechnik (BA)
procar informatik AG
Software Entwicklung
Eschenweg 7
64331 Weiterstadt
fon: +49 (6150) 979 65 20
fax: +49 (6150) 979 65 59
mail: s.horn@...
url: http://www.procar.de
Amtsgericht Darmstadt HRB 8268
USt.-IdNr.: DE195354166
Vorstand: Dipl.Ing. Volker Holthaus, Karl-Heinz Schlapp Vorsitzender
des Aufsichtsrats: Dipl.-Ing. Wilfried Holthaus
i am using JBoss 7.3.0 with Jaybird 2.2.4 to connect to an Firebird
SuperServer.
In a ejb with container managed transaction i am using a
org.firebirdsql.ds.FBXADataSource to get a Firebird connection.
From this connections i create two statements.
Statement on executes a query and gets an resultset.
While resultset.next() i iterate though the rows and execute an other
query on statement2.
executing statement2 causes the resultset from statement1 is closed.
I googled a bit...
The solution should be to use setautocommit(false), but this is not
possible in an container managed transaction.
as a workarround i use setDefaultResultSetHoldable(true).
In my opinion the result set may not be closed within an managed
transaction, because commit and rollback should be invoked from the
managed transaction.
Can anyone confirm that this a bug in Jaybird driver?
Or am i doing something wrong?
An other problem is, that when rolling back the container managed
transaction every time the following exception occurs:
org.firebirdsql.jca.FBXAException: invalid database handle (no active
connection)
With an oracle DB and the matching oracle driver the rollback works, so
i guess it is a driver problem?
Thanks in advance.
Regards,
--
Mit freundlichen GrÃŒÃen,
Sascha Horn
Dipl. Ing. Informationstechnik (BA)
procar informatik AG
Software Entwicklung
Eschenweg 7
64331 Weiterstadt
fon: +49 (6150) 979 65 20
fax: +49 (6150) 979 65 59
mail: s.horn@...
url: http://www.procar.de
Amtsgericht Darmstadt HRB 8268
USt.-IdNr.: DE195354166
Vorstand: Dipl.Ing. Volker Holthaus, Karl-Heinz Schlapp Vorsitzender
des Aufsichtsrats: Dipl.-Ing. Wilfried Holthaus