mirror of https://github.com/apache/activemq.git
https://issues.apache.org/jira/browse/AMQ-1063 - revert delayed change to inTx flag, now cleared before exception is thrown by getConnection, this ensures jms transactions can use autocommit=false
This commit is contained in:
parent
3797da64fc
commit
b7c430d068
|
@ -38,7 +38,7 @@ public class TransactionContext {
|
|||
private final DataSource dataSource;
|
||||
private final JDBCPersistenceAdapter persistenceAdapter;
|
||||
private Connection connection;
|
||||
private volatile boolean inTx;
|
||||
private boolean inTx;
|
||||
private PreparedStatement addMessageStatement;
|
||||
private PreparedStatement removedMessageStatement;
|
||||
private PreparedStatement updateLastAckStatement;
|
||||
|
@ -63,6 +63,8 @@ public class TransactionContext {
|
|||
}
|
||||
} catch (SQLException e) {
|
||||
JDBCPersistenceAdapter.log("Could not get JDBC connection: ", e);
|
||||
inTx = false;
|
||||
close();
|
||||
IOException ioe = IOExceptionSupport.create(e);
|
||||
persistenceAdapter.getBrokerService().handleIOException(ioe);
|
||||
throw ioe;
|
||||
|
@ -160,9 +162,8 @@ public class TransactionContext {
|
|||
if (inTx) {
|
||||
throw new IOException("Already started.");
|
||||
}
|
||||
connection = getConnection();
|
||||
// only mark in tx if we could get a connection
|
||||
inTx = true;
|
||||
connection = getConnection();
|
||||
}
|
||||
|
||||
public void commit() throws IOException {
|
||||
|
|
Loading…
Reference in New Issue