code: private SIBusMessage _receiveNoWait(SITransaction tran)
        throws SISessionUnavailableException, SISessionDroppedException,
               SIConnectionUnavailableException, SIConnectionDroppedException,
               SIResourceException, SIConnectionLostException, SILimitExceededException,
               SIErrorException,
               SINotAuthorizedException,
               SIIncorrectCallException
     {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "_receiveNoWait");
  
        SIBusMessage mess = null;
  
  
        boolean consumeSuccessful = false;
        // If we are using a proxy queue then do a receiveNoWait on that guy instead
        if (isReadAhead)
        {
           try
           {
              // Note that we don't pass on unrecoverableReliability -
              // See my note in _registerAsyncConsumerCallback
              mess = proxyQueue.receiveNoWait(tran);
           }
           catch (MessageDecodeFailedException mdfe)
           {
              FFDCFilter.processException(mdfe, CLASS_NAME + "._receiveNoWait",
                                          CommsConstants.CONSUMERSESSIONPROXY_RCVNOWAIT_01, this);
  
              SIResourceException resourceException =
                 new SIResourceException(
                    nls.getFormattedMessage("UNABLE_TO_CREATE_JSMESSAGE_SICO1002", null, null)
                 );
  
              resourceException.initCause(mdfe);
  
              if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled()) SibTr.event(this, tc, "receiveNoWait", resourceException);
  
              throw resourceException;
           }
        }
        else
        {
           mess = performReceive(-1, tran);
        }
  
        consumeSuccessful = true;
  
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "_receiveNoWait");
        return mess;
     }
docs: This private version of receiveNoWait just simply processes the receive
  request without doing any checking on the state of the connection, session
  or transaction and without getting any locks needed. This method should
  be called by a method that does do this.
  
  @param tran
  
  @return JsMessage