Ok, finally I have had a chance to look at this :)
Looking at your code and your explanation of the problem, you are running non clustered so you won't have any transparent failover.
This means you have to install an exceptionListener to receive notiifcations on the connection if it fails (see JMS spec for more details).
I notice in your code, you are not installing an exception listener, so will get no exceptions (since receive() does not go to the server).
If you follow the normal pattern of failure detection and retry, this should work (I have tried this locally and it works for me)