Eventually, the JMS code should give up and throw some sort of java.net.SocketException . This might take the O/S 3-5 minutes. Does this not eventually happen?
"Fire and forget" does not mean complete asynchronous operation. When you send a message, the operation will only return until the message is on the server (and persisted). "Fire and forget" means once the message is enqueued, you do not have to wait until it is processed.
I'm not sure closing the firewalled ports in the middle of a socket connect is going to work. I don't think the firewall cares one bit if you have a socket connection or not, it can still block the traffic.
You can get a stack trace and post it here.
Yes after a few minutes my JMS onException method is callled.
But, shouldn't JMS be asychronous in the client side? I mean, shold we wait the message to arrive to the server, to resume the thread? I don't think this is good for anyone!
I don't want to think that I should create a separate thread to do a sender.send(message), or shoud I?
If you have an idea, please tell me!
Thanks a lot,