code: protected JsJmsMessage instantiateMessage() throws Exception {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "instantiateMessage");
  
          // Create a new message object.
          JsJmsMessage newMsg = jmfact.createJmsMessage();
          messageClass = CLASS_NONE;
  
          // d317373 default the MSG_TYPE to be DATAGRAM until setReplyTo is called
          newMsg.setNonNullProperty(ApiJmsConstants.MSG_TYPE_PROPERTY, Integer.valueOf(ApiJmsConstants.MQMT_DATAGRAM));
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "instantiateMessage", newMsg);
          return newMsg;
      }
docs: This method carries out the instantiation of the MFP message object for this
  JMS message class. The method is overridden by subclasses to instantiate the
  correct subclass and carry out any reference setting required.
  
  It is safe to assume by this point that the jmfact reference has been
  initialized, otherwise you wouldn't have got this far!