Change Notes item #546958, was opened at 2002-04-22 04:47
You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=381174&aid=546958&group_id=22866

Category: JBossCX
Group: v3.0 (Rabbit Hole)
Status: Open
Priority: 5
Submitted By: David Jencks (d_jencks)
Assigned to: David Jencks (d_jencks)
Summary: New local tx jca-jdbc wrapper

Initial Comment:
I've written a new jca wrapper for jdbc 1 drivers.  It
features connection association, automatic autocommit
outside a managed transaction, and destroying
connections on errors (SQLExceptions).  Currently it
does not have any statement pooling or prepared
statement caching.

In order for this to compile against both jdbc 2 and
jdbc 3 (included in jdk1.4), I implemented sort of an
ifdef system using ant filters.  An unfortunate side
effect of this at the moment is that the entire
connector source tree is copied before being compiled.
 Assistance in changing this would be appreciated.

-- Lack of connection association was causing
exceptions with the new ConnectionManager
implementations when a ejb held a connection over a
call to another ejb.  The ConnectionManager
implementation attempts to release the connection
during the call, which requires connection association
support.  Connection association support is required of
all adapters by the jca spec.

-- The jca spec requires of at least cci adapters that
any work done outside of a managed (by the tx manager)
transaction or an explicit local transaction be
autocommitted.  I haven't checked the jdbc spec for xa
drivers, however this behavior seems reasonable.  If
you are using CMT, you don't need to worry about the
autocommit setting.  If you are using BMT, you can set
autocommit either way as you prefer without interfering
with CMT use of the same connections.

-- The jca spec requires that ManagedConnections be
destroyed on serious errors.  Since there is no
standard or consistency between databases on
SQLExceptions, we are forced to treat all SQLExceptions
as fatal to the ManagedConnection.  However, we have an
opportunity to write db-specific extensions that
actually look at the sql exception and, in a db
specific way, decide if the connection is dead (e.g.
socket error) or recoverable (duplicate primary key).

-- The old local wrapper had lots of statement
caching/pooling code.  This caused problems for some
people at some times, and I think it may have been
turned off.  I would like to know if anyone has any
evidence that such caching significantly improves
performance on any real db.  My own view at the moment
is that such caching should be performed by the driver
or database itself.

Due to the problems with ejbs calling other ejbs with
the current wrapper, that this one solves, I am
considering merging this wrapper into the 3.0 branch. 
Opinions on this are welcome.

----------------------------------------------------------------------

You can respond by visiting: 
http://sourceforge.net/tracker/?func=detail&atid=381174&aid=546958&group_id=22866

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to