Subject jca-jdbc driver status
Author David Jencks
Hi,
I've committed the current state of the jca-jdbc driver I have been working
on. It features

XA transaction support through jca mechanism of managed
connections/XAResource

jdbc Datasource support as a front end to the managed connections, through
a ConnectionManager

a default FBStandAloneConnectionManager to be used in a non managed
scenario. (this implementation does no connection pooling)

jdbc Connections except for transaction management. Autocommit is not
supported. Transactions must be managed through an XAResource or through a
(jca) LocalTransaction obtained through FBConnection.getLocalTransaction().

jdbc Statements mostly work, except for weirdo features like batched
updates and multiple result sets.

jdbc PreparedStatements mostly work, except as above.

jdbc ResultSets mostly work for standard types less complicated than blobs
or dates. More type flexibility could be added.

jdbc ResultSetMetaData mostly works.

In addition there is a simple jmx mbean
(org.firebirdsql.management.FBManager/FBManagerMBean that can be used in a
jmx environment or standalone to create and drop databases. Unfortunately
it only creates dialect 1 databases at this time.

There are some junit tests for much of this. They can be run with the
build target ./build.sh junit. In order to run them, you will need to
create a dbsrc directory next to the db directory and create an empty
dialect 3 db in it called fbmctest.gdb.

I think most of the code is not thread safe. I am not yet an expert on
thread safety. I am trying to take the point of view of minimum
synchronization and maximum testing: start with essentially no
synchronization, add tests to make it fail and add synchronization to fix
the tests.


All comments, suggestions, tests, etc would be appreciated.

Thanks
david jencks