My questions:

1. In general, when is JTA required on the DBMS side? When is an external
transaction manager required? I know it is required for two-phase commit ---
is that the only reason you need JTA on the DBMS side and an external
transaction manager? Is there ever a need for an external transaction
manager or JTA on the DBMS side in the case where the transaction updates
one database only?

2. How is javax.transaction.UserTransaction implemented in the case where
there is not an external transaction manager?

3. How can a transaction span processes in the case where there is not an
external transaction manager?


Background:

I am working with WebSphere Application Server 4.0 and DB2. If you want to
use JTA with DB2, it is necessary to JTA-enable the driver. I haven't done
this, and yet all transactions involving one database seem to work fine ....
I can even start and end transactions in an application client via
javax.transaction.UserTransaction. Since in this case the transaction spans
processes, it seems local transactions can span processes. (Perhaps the app
server associates the physical connection with the logical thread?)  Also,
it appears that an app server can implement
javax.transaction.UserTransaction without JTA on the DBMS-side ... is the
app server's UserTransaction implementation  just a wrapper around a plain
old JDBC connection? (Also, in WAS 4.0 it is necessary to explicitly enable
the transaction service ... I have discovered enabling or disabling the
transaction service seems to have no impact on my transactions.)

Thanks.

Laurel

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff EJB-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to