You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Phil Steitz (JIRA)" <ji...@apache.org> on 2010/03/15 16:54:27 UTC
[jira] Commented: (DBCP-326) Rollback an uncommited transaction on
return
[ https://issues.apache.org/jira/browse/DBCP-326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12845380#action_12845380 ]
Phil Steitz commented on DBCP-326:
----------------------------------
This *should* be current behavior. In PoolableConnectionFactory#passivateObject, we have
{code}
public void passivateObject(Object obj) throws Exception {
if(obj instanceof Connection) {
Connection conn = (Connection)obj;
if(!conn.getAutoCommit() && !conn.isReadOnly()) {
conn.rollback();
}
conn.clearWarnings();
if(!conn.getAutoCommit()) {
conn.setAutoCommit(true);
}
}
if(obj instanceof DelegatingConnection) {
((DelegatingConnection)obj).passivate();
}
}
{code}
Do you have an example where uncommitted transactions are not being rolled back?
> Rollback an uncommited transaction on return
> --------------------------------------------
>
> Key: DBCP-326
> URL: https://issues.apache.org/jira/browse/DBCP-326
> Project: Commons Dbcp
> Issue Type: Improvement
> Affects Versions: 1.3, 1.4
> Environment: Any
> Reporter: Adrian Tarau
> Priority: Critical
>
> DBCP should perform a rollback(should be configurable but by default activated) when the datasource has auto-commit=false. The reason behind is to avoid passing a partial transaction to the next client.
> Rolling back a transaction(in case it wasn't committed of course) adds a guarantee to the validity of a connection borrowed from the pool.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.