This question was answered numerous times already, sop please search in previous threads. The answer is that you must make the transaction timeout of your container longer. With JBoss this is done in the file transaction-jboss-beans.xml
Or alternatively if you can (depends what the processing is), do your work in the @Asynchronous method (but with no transaction REQUIRED set), and call another method with REQUIRED when you need to use a transaction.
(beware if your REQUIRED method is in the same class you'll have to use Component.getInstance to get a proxy to the class so the transaction interceptors can do their magic)
thank you so much!!
have a sweet day!!