[ 
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)

Reply via email to