db-torque-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jim Caserta <smoothie...@yahoo.com>
Subject RE: Torque Connection pool .. ORA- 01453 - Set Transaction must be the first statement
Date Mon, 10 Apr 2006 20:16:05 GMT
One last item.. 

I can see using ther finally's as we discussed,
however I can also see using the catches if I want to 
handle different exceptions in different ways.  

If I don't use them, I will have no idea what error
messages to log. 

Don't you have the same issue?

Jim  

--- Thomas Fischer <tfischer@apache.org> wrote:

> It helps if an error occurs in the doStuff() part,
> because the transaction 
> is closed properly. As a further benefit, all
> updates/inserts since the 
> last commit/rollback (which is hopefully at the
> point where you last 
> returned the connection to the pool) are reverted.
> If no errors occur, the rollback does not hurt,
> because it is after the 
> commit.
> 
> By the way, I just committed the documentation page
> about transactions and 
> connections. See
> 
>
http://svn.apache.org/viewcvs.cgi/db/torque/runtime/trunk/xdocs/reference/connections-transactions.xml?view=markup
> 
>     Thomas
> 
> On Mon, 10 Apr 2006, Jim Caserta wrote:
> 
> > Exactly how does that rollback help at that point
> of
> > the code Thomas?
> >
> > --- Thomas Fischer <tfischer@apache.org> wrote:
> >
> >> 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
> >>
> >>
> >
> >
> > __________________________________________________
> > 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
> 
> 


__________________________________________________
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


Mime
View raw message