Another great idea... 
Thanks for all the great help guys...

Jim

--- Greg Monroe <[EMAIL PROTECTED]> wrote:

> One other minor gotcha for error tracking is that in
> some
> very rare instances, the error is actually thrown as
> a 
> subclass of Throwable rather than Exception. I
> haven't 
> seen this for a while, but some JDBC drivers used to
> do 
> this.  
> 
> So, if you want to make sure to catch every error,
> you 
> should use:
> 
> }
> catch (Throwable t) 
> { ...
> 
> 
> > -----Original Message-----
> > From: Thomas Fischer [mailto:[EMAIL PROTECTED] 
> > Sent: Monday, April 10, 2006 4:30 PM
> > To: Apache Torque Users List
> > Subject: RE: Torque Connection pool .. ORA- 01453
> - Set 
> > Transaction must be the first statement
> > 
> > 
> > You can use catch and finally simultaneously.
> > 
> > try
> > {
> >    doSomething();
> > }
> > catch (Exception e)
> > {
> >    logError(e);
> > }
> > finally
> > {
> >    closeResources();
> > }
> > 
> > You can also use several catch blocks.
> > 
> >     Thomas
> > 
> > On Mon, 10 Apr 2006, Jim Caserta wrote:
> > 
> > > 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 <[EMAIL PROTECTED]> 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/refere
> > > nce/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 <[EMAIL PROTECTED]>
> 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 <[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
> 
=== message truncated ===


__________________________________________________
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]

Reply via email to