In your message driven bean, are you throwing a TransactionRolledBackLocalException when you detect an error and do not want to continue processing?
That will keep the transaction from completing and the message will stay in queue.
TransactionRolledBackLocalException is not in any of the jar files and the MessageListener does not specify that an exception is thrown, could you be a little more exact as I would like to achieve transactional stuff in message driven beans.
Well, I've managed to get it working in a different way than suggested above.
Good article to explain it.
Is the redelivery from a failed transaction configurable, number of retries, time between etc.
The system tries to send them again when a new message arrives in the queue and when the ejb is redployed are there any other events that would make the system attempt another delivery?