Hi,

we are currently evaluating to migrate a Struts1 J2EE-Application to Struts2 
and discovered something which might be a major problem or might not, which is 
what I am trying to find out:

In section J2EE.4.2.1 the J2EE specifications (1.3, 1.4 and 5.0 at least) 
states:
 
"Servlet filters and web application event listeners must not demarcate
transactions using the javax.transaction.UserTransaction interface. Servlet
filters may use transactional resources in a local transaction mode within 
their doFilter methods but should not use any transactional resources in the 
methods of any objects used to wrap the request or response objects."

Now Struts2 does call its actions from within the FilterDispatcher servlet
filter and in our application the action methods would call into our business
logic components which do demarcate transactions using the UserTransaction
interface. Therefore we wonder if this might cause problems.

We are using WebSphere (v6.1) as application server. First experiments showed
that the UserTransaction (via the JNDI lookup java:comp/UserTransaction) is
available and can be used within the Struts2 action. However a started
transaction is not rolled back if the application code fails to do a commit or
rollback (in case of an Error thrown, for example). In this case further
requests executed on the same the thread generate an exception when an attempt
is made to start a new transaction. This is different from the behavior in
Struts1 actions, which are called from a servlet: Here the transaction is
cleaned up by the container, no matter what the application code does or does 
not.

So it seems that using UserTransactions with Struts2 more or less works with
WebSphere but it might be more like an undocumentated "feature" of WebSphere
that might be dropped in the future.

Is this something that has been taken into consideration when designing Struts2
to call actions from within a servlet filter? Are there any workarounds / best
practices / advices how to deal with this potential problem?

We have started to love to work with Struts2 and would hate it if we had to 
stop our migration project because of this detail.

Any feedback on this issue would be highly welcome.

Gerhard


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to