This is slightly dangerous though, since if the second action throws an exception or for some reason doesn't execute, you've got a TX left open (unless of course you're using Cameron's ContainerInterceptor).
-Pat ----- Original Message ----- From: "Jason Carreira" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Tuesday, July 15, 2003 1:22 PM Subject: RE: [OS-webwork] WebWork2 Action Chains and Interceptors Ok, let me try again. Here's the order of execution: Action1 Interceptors - before Action1 - execute Result -> ActionChainingResult Action2 Interceptors - before Action2 - execute Result -> JSP Action2 Interceptors - after Action1 Interceptors - after Now if you have the TransactionInterceptor applied to BOTH Actions, and the before does basically this: if (getThreadLocalTransaction() == null) { Transaction tx = .... setThreadLocalTransaction(tx); } else { commitTransaction(); Transaction tx = .... setThreadLocalTransaction(tx); } and the after does this: if (getThreadLocalTransaction() != null) { commitTransaction(); } protected void commitTransaction() { getThreadLocalTransaction().commit(); setThreadLocalTransaction(null); } then you should get the behavior you want. Action1 Interceptors - before will create a transaction Action2 Interceptors - before will commit the outside transaction and create a new one Action2 Interceptors - after will commit the second transaction Action1 Interceptors - after will do nothing You could break this into 2 Interceptors if you want, or parameterize the TransactionInterceptor for different behavior (commit outer transaction? ignore outer transaction? etc) Jason -----Original Message----- From: Cameron Braid [mailto:[EMAIL PROTECTED] Sent: Tuesday, July 15, 2003 4:02 PM To: [EMAIL PROTECTED] Subject: RE: [OS-webwork] WebWork2 Action Chains and Interceptors I am using a threadlocal for both the session and transaction objects. The issue - which you seem to have missed - is that the chained FROM action's interceptors are executed around the chained TO action. This happens because the chain is implemented as a result which is a part of the chained FROM action's invocation. I will just adopt object orientation once again .. how about that eh ! and use a superclass to implement the transaction container. ------------------------------------------------------- This SF.net email is sponsored by: VM Ware With VMware you can run multiple operating systems on a single machine. WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the same time. Free trial click here: http://www.vmware.com/wl/offer/345/0 _______________________________________________ Opensymphony-webwork mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork