MessageProducer is the parent interface for all message
A client also has the option of creating a message producer without
supplying a destination. In this case, a destination must be provided with
every send operation. A typical use for this kind of message producer is
to send replies to requests using the request's JMSReplyTo
A client can specify a default delivery mode, priority, and time to live
for messages sent by a message producer. It can also specify the delivery
mode, priority, and time to live for an individual message.
A client can specify a time-to-live value in milliseconds for each
message it sends. This value defines a message expiration time that
is the sum of the message's time-to-live and the GMT when it is sent (for
transacted sends, this is the time the client sends the message, not
the time the transaction is committed).
A JMS provider should do its best to expire messages accurately;
however, the JMS API does not define the accuracy provided.