code: public String getTransactionId() throws SIMPException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(tc, "getTransactionId");
      
      assertValidControllable();    
      
      String id = null;
      SIMPMessage msg = null;
      try
      {
        msg = getSIMPMessage();
      }
      catch (SIResourceException e)
      {
        // No FFDC code needed  
        SIMPRuntimeOperationFailedException finalE =
          new SIMPRuntimeOperationFailedException(
            nls.getFormattedMessage(
              "INTERNAL_MESSAGING_ERROR_CWSIP0003",
              new Object[] {"QueuedMessage.getTransactionId",
                            "1:389:1.66",
                            e,
                            Long.toString(_messageID)},
              null), e,
              "INTERNAL_MESSAGING_ERROR_CWSIP0003", new Object[] {Long.toString(_messageID)});
    
        SibTr.exception(tc, finalE);
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) 
          SibTr.exit(tc, "getTransactionId", finalE);
        throw finalE;
      } 
      
      if (msg != null)
      {
        PersistentTranId pTranId = msg.getTransactionId();
        if (pTranId != null)
        {
          id = pTranId.toTMString(); 
        }
      }
        
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "getTransactionId", id);
      return id;
    }
docs: /* (non-Javadoc)
  @see com.ibm.ws.sib.processor.runtime.SIMPQueuedMessageControllable#getTransactionID()