Hello RS,
If you are using Oracle SP to do the logging stuff,the seperate transaction 
could be achieved by defining that Logging Store procedure as 
PRAGMA AUTONOMOUS TRANSACTION;
This would suspend the main transaction and would only commit the statements 
within it.
 
http://www.stanford.edu/dept/itss/docs/oracle/9i/appdev.920/a96590/adg08sql.htm#8280
 
 

________________________________

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Fri 5/5/2006 5:11 AM
To: user-java@ibatis.apache.org
Subject: RE: A separate transaction for the logger


If you were to use the Spring Framework you could write a new Dao, LoggingDao, 
to handle inserts of your logging statements and define that the LoggingDao 
gets a new transaction as opposed to participating within the current 
transaction. This would suspend any current transaction and begin a new 
Transaction that would operate outside of your existing transaction and would 
cause your logging inserts to always commit, but you would need to decide if 
this were to occur before or after the execution of your other database 
activities. 
 
If you want to get really fancy and clean, you would write an interceptor 
(Before Advice) that would perform the insert, using LoggingDao, before the 
other statements get executed. That way there is no need to place this logging 
mechanism within your code at all. (Separation of concerns)

________________________________

From: "rs"<[EMAIL PROTECTED]> [mailto:"rs";<[EMAIL PROTECTED]>] 
Sent: Thursday, May 04, 2006 4:08 PM
To: user-java@ibatis.apache.org
Subject: A separate transaction for the logger



Hi, 

Am using a single static instance of SqlMapClient for all my DAOs. There's a 
need to save some logging info into the database regardless if the application 
logic fails or not, i.e. there is a need to start a separte transaction for 
logger. 

Illustration: 

// application logic 
... 
SQL_MAPPER.startTransaction(); 
// do some stuff 
... 
//-----------> log current app status 
// 
// 1) start a new transaction for logger 
// 2) log the status 
// 3) commit and end logger transaction 
... 
// application error here but the status has been saved and committed 
... 
SQL_MAPPER.endTransaction(); 


So the question is how to start a new separate transaton for the logger. I'm 
thinking about building a separate instance of SqlMapClient just for logger 
operations but maybe there's a better way. 

Thanks 









_______________________________________________ 
No banners. No pop-ups. No kidding. 
Make My Way your home on the Web - http://www.myway.com 






DISCLAIMER:
This email (including any attachments) is intended for the sole use of the 
intended recipient/s and may contain material that is CONFIDENTIAL AND PRIVATE 
COMPANY INFORMATION. Any review or reliance by others or copying or 
distribution or forwarding of any or all of the contents in this message is 
STRICTLY PROHIBITED. If you are not the intended recipient, please contact the 
sender by email and delete all copies; your cooperation in this regard is 
appreciated.

<<winmail.dat>>

Reply via email to