It's discussed in Book "Bitter EJB". I'm wondering if it's legal to quote the book. So I give a description in my own words.
1. JMS server sends message to a MDB.
2. this MDB's onMessage() is being triggered, but unfortunally, throws EJBException(). So no acknowelage message sent back to server.
3. JMS thought Message has not been received, then re-send the message.
4. MDB does the same thing in step 2.
5. JMS Server does the same thing in step 3.
So, I think answer should be Messaging in the Business Tier
OK, so that other guy knows Java better than I do, but I bet he can't speak Wuhanese(a Chinese Dialect) like me.