db-torque-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas Fischer <tfisc...@apache.org>
Subject RE: Torque Connection pool .. ORA- 01453 - Set Transaction must be the first statement
Date Mon, 10 Apr 2006 19:06:11 GMT
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 <fischer@seitenbau.net> wrote:
>
>>
>> Jim Caserta <smoothie_jc@yahoo.com> 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:
>> torque-user-unsubscribe@db.apache.org
>> For additional commands, e-mail:
>> torque-user-help@db.apache.org
>>
>>
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
> For additional commands, e-mail: torque-user-help@db.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: torque-user-unsubscribe@db.apache.org
For additional commands, e-mail: torque-user-help@db.apache.org


Mime
View raw message