Kris,
2006/10/30, Kris Jurka <books@ejurka.com>:
>
> I see how Allan's patch would get UPDATE 1 to commit, but UPDATE 2 and 3
> are the equivalent of an interleaved transaction and I don't see how that
> could possibly work. I'm not sure what sort of protection we need to add
> to prevent people from doing this or other transaction handling actions on
> the connection. Right now the Connection object doesn't know if it is
> being used by a XADatasource.
The problem is not if a connection was created by an XADatasource or
not but if it is being used in a global transaction context or not.
Weblogic's connection pool has a parameter called
local-transaction-supported which when set to false will disallow
local transactions to be executed on connections taken from that pool.
I guess you could enforce the same behavior in the driver by throwing
a SQLException when some query is executed and XAResource.start() has
not been called yet or XAResource.end() has already been called.
Ludovic