I see how long ago this message was posted, but for those who read it and have the same problem:
First, instead of trying to solve the problem, you need to look at your design...
JMS really is a bit much for chat. Chat is generally thought of as a connectionless piece of software, and every message doesn't need to be treated like a transaction. So in general, using JMS is overkill.
I would recommend writing a robust sockets based system, and only route a message to JMS *if* a recipient could not receive a message (was logged off, net problems, etc.) Then when the user logged in, they'd be able to do a JMS-check to see if they had messages waiting.