A {@code CompletionListener} is implemented by the application and maybe specified when a message is sent asynchronously.
When the sending of the message is complete, the JMS provider notifies the application by calling the {@code onCompletion(Message)} method of thespecified completion listener. If the sending if the message fails for any reason, and an exception cannot be thrown by the {@code send} method,then the JMS provider calls the {@code onException(Exception)} method ofthe specified completion listener.
@version 2.0
@since 2.0
@see javax.jms.MessageProducer#send(javax.jms.Message,int,int,long,javax.jms.CompletionListener)
@see javax.jms.MessageProducer#send(javax.jms.Destination,javax.jms.Message,javax.jms.CompletionListener)
@see javax.jms.MessageProducer#send(javax.jms.Destination,javax.jms.Message,int,int,long,javax.jms.CompletionListener)
@see javax.jms.JMSProducer#setAsync(javax.jms.CompletionListener)
@see javax.jms.JMSProducer#getAsync()