Some of my stateless EJB beans annotated to work outside of transaction (@TransactionAttribute(NOT_SUPPORTED). I still don't understand why annotation does not work at the method level so I always have to split beans into the two - transactinoal one and non-transactional one.
A Java Bean action method is supposed to prepare the data for futher displaying to the user. It is completely read-only operation from DB perspective and does not requires a transaction.
For me it was obvious to annotate Java Bean class with @Transactional(NEVER). But it does not help when Seam managed transactions are on.
Some topics in the forum stated that the one who actually starts the transaction is the Jsf Lifecycle listener. If so it would impossible to escape the transaction when long-lasting operation, for instance huge amount of data processing or long file uploading. The only way would be to give up Seam-managed transactions.
Any suggestions how to escape transaction and not give up SMT?