on has completed. Jakarta Messaging refers to this as an "asynchronous send".

 <p>
 Typically, a message producer is assigned a destination at creation time; however, the Jakarta Messaging API also supports
 unidentified message producers, which require that the destination be supplied every time a message is sent.

 <p>
 When the message has been successfully sent the Jakarta Messaging provider invokes the callback method <tt>onCompletion</tt> on an
 application-specified <tt>CompletionListener</tt> objec