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


__________________________________________________
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