[
https://issues.apache.org/jira/browse/DBCP-428?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Phil Steitz updated DBCP-428:
-----------------------------
Fix Version/s: 2.1
> Unsuccessful Connection enlistment in XA Transaction ignored by
> TransactionContext
> ----------------------------------------------------------------------------------
>
> Key: DBCP-428
> URL: https://issues.apache.org/jira/browse/DBCP-428
> Project: Commons Dbcp
> Issue Type: Bug
> Affects Versions: 1.4, 2.0.1
> Environment: All
> Reporter: Vladimir Konkov
> Priority: Critical
> Fix For: 2.1
>
> Attachments: DBCP-428.diff
>
>
> When TransactionContext call 'enlistResource()' on Transaction it is ignored
> returned result. This hapens at least when XAResource throws XAException in
> enlistResource method. By contract XAException should not be propagated by
> 'enlistResource()' , instead 'false' is returned.
> As result:
> 1. ManagedConnection returned by pool is not enlisted in transaction
> (application think it does)
> 2. Transaction itself marked for rollback (because of XaException).
> 3. ManagedConnection returned by pool used by application without any errors
> until commit on transaction is called. Changes made in not enlisted
> connection may be commited on other use of native connection or rolled back
> depending on pool config.
> Issue is very dangerous especialy if changed made by application will be
> commited later but XA transaction in witch it made has bin rolled back.
> We are hit by this bug in production using MS SQL Server and PostgreSQL JDBC
> drivers.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)