If you catch your exception and rollback your transaction, then the message should automatically get redelivered.
(This should happen automatically for your in a transacted MDB).
To prevent roll backs happen in too quick a succession you can specify a redelivery delay (see userguide for more info).
We were working through those today in the destinations-service.xml. Hopefully that will alleviate those issues.
We still have messages stuck in the queue that were there before the change. Is there a way to replay these messages without restarting JBoss?