The JMS client needlessly holds the failover mutex when creating a text message. It also sets the session.
When creating messages to be sent, they should be just value objects and should not hold any state.
When constructing a message to be given to the consumer, we have to set the session, so acknowledge can be called. But not when we create messages for sending.