A JMS client usually works as follows:
Therefore a JMS client may have 2 different kind of connections to a SwiftMQ Router: JNDI and JMS. SwiftMQ provides transparent reconnect for both of them and ensures that any JMS client reconnects transparently without the need to write custom reconnect code.
Whether a JNDI context should transparently reconnect in case a of a connection lost is specified in the SMQP-URL with attributes "reconnect", "retrydelay", "maxretries".
smqp://jms1:4001/timeout=10000;reconnect=true;retrydelay=1000;maxretries=50
The above URL enables reconnect with attempts every second and gives up after 50 times without success. A detailed description can be found in the JNDI Swiftlet documentation, section "JNDI Provider URL".
There is a whole section that explains transparent JMS reconnect.