The code now looks good. It's fine to rollback after you do the commit.
Thomas
On Mon, 10 Apr 2006, Jim Caserta wrote:
So if I'm using the following code below,
My question is:
Even if the connection is fine and the database logic
does it's stuff correctly (Do Stuff)..
And the connection is NOT closed. It's ok to do the
"rollback" since the commit worked fine also. correct?
Connection dbConn = null;
try {
dbConn =
Torque.getConnection("db2.torque.environment");
////Do Stuff
dbConn.commit();
}
finally {
if (dbConn == null) {
//Connection error logic
}
if (!dbConn.isClosed()) {
dbConn.rollback();
dbConn.close();
}
}
--- Thomas Fischer <[EMAIL PROTECTED]> wrote:
Jim Caserta <[EMAIL PROTECTED]> schrieb am
10.04.2006 17:40:05:
Sorry about the confusion. I meant using
Torque.getConnection() and dbConn.close() instead
of
Transaction.begin()..
For any DB which supports transactions: _Make sure_
that the connection is
in autocommit mode or use Transaction.begin and
Transaction.commit() or do
both. If you do not commit/rollback and are not in
autocommit mode you can
run into ugly trouble (e.g. if the transaction
serialization is read
committed, other connections will never see the
changes to the data in the
uncommitted transaction and the like).
And if iI was. the following would work well?
Connection dbConn = null;
try {
// get a connection from the pool
dbConn =
Torque.getConnection(db2.torque.environment);
////Do Stuff
//Commit the transaction
dbConn.commit();
}
finally {
if (!dbConn.isClosed()) {
// some error occurred, try to rollback
and return
connection to the pool
dbConn.close();
dbConn.rollback(); //Is this needed?
}
}
This is similar to an earlier version I used some
time ago. The problem is
it would throw a NullPointerException in the finally
block if
Torque.getConnection() fails. Also, you should
rollback() before you
close().
Whatever code you use in the end, make sure (i.e.
_test_) that an error in
retrieving/working with the connection is handled
correctly.
Thomas
---------------------------------------------------------------------
To unsubscribe, e-mail:
[EMAIL PROTECTED]
For additional commands, e-mail:
[EMAIL PROTECTED]
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]