Currently ServiceMix configures the underlying ActiveMQ to simply use tcp as the transport protocol. This is defined in conf/servicemix.properties:
activemq.url = tcp://${activemq.host}:${activemq.port}
While this configuration works fine and is sufficient for using ServiceMix in development, it will not recover from any network failures and is therefore not suitable for running in a production system. In case of a network failure or inactivity timeout, ActiveMQ will simply raise an exception but won't try to reconnect. You will need to restart ServiceMix in order to recover from such error. For reconnection to happen, the failover protocol should be used. Hence the default configuration should be changed to
activemq.url = failover://(tcp://${activemq.host}:${activemq.port})
Failover should be the default protocol and enabled out of the box. This is captured in ESB-166.
This change is probably a good idea for users in general. I typically recommend that people use the failover transport from the client side even if they're only connecting to a single broker for this very reason.
Bruce