Is it possible to use a JTA transaction manager (arjuna for example) on a standalone client application making remote EJB calls, such that if one EJB call fails, they can all be rolled back, or if the client encounters an error, it can roll back the transaction and any word done via the remote ejb calls?
If so, would this work with stateless or stateful, or both?
If you have a remote client for EJB's you can simple use the InitialContext to get a UserTransaction reference
uTx = (UserTransaction) ic.lookup("txn:UserTransaction");
with uTx.begin() and uTx.rollback() uTx.commit() you can control the server side transaction.
This will work for all EJB's