def submit_request(request_message)
      request_message.reply_to_address = @reply_address
      request_message.generate_user_id unless request_message.user_id
      @producer.send(request_message)
      request_message.user_id
    end
def submit_request(request_message)
      request_message.reply_to_address = @reply_address
      request_message.generate_user_id unless request_message.user_id
      @producer.send(request_message)
      request_message.user_id
    end
Asynchronous Request
  Use: submit_request & then wait_for_reply to break the request into
       two separate calls.

 For example, submit the request now, do some work, then later on
 in the same thread wait for the reply.

 The supplied request_message is updated as follows
 * The property JMSReplyTo is set to the name of the reply to address
 * Creates and sets the message user_id if not already set
 * #TODO: The expiry is set to the message timeout if not already set

 Returns Message id of the message that was sent