code: public void close(int requestNumber)
     {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "close", requestNumber);
  
        // Deregister any error callback created for this connection.
        if (asynchReader != null)
        {
                try
                {
                   mainConsumer.getConsumerSession().getConnection().removeConnectionListener(asynchReader);
                }
                catch (SIException e)
                {
              //No FFDC code needed
              //Only FFDC if we haven't received a meTerminated event.
              if(!((ConversationState)getConversation().getAttachment()).hasMETerminated())
              {
                 FFDCFilter.processException(e, CLASS_NAME + ".close",
                       CommsConstants.CATSESSSYNCHCONSUMER_CLOSE_01, this);
              }
  
                   if (TraceComponent.isAnyTracingEnabled() && tc.isEventEnabled()) SibTr.exception(this, tc, e);
                }
  
          if (asynchReader.isCurrentlyDoingReceiveWithWait()) asynchReader.sendNoMessageToClient();
        }
        super.close(requestNumber);
  
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "close");
     }
docs: Closes the session. If we are currently doing a receiveWithWait then
  that will be interrupted and a response will be sent to the client.
  
  @param requestNumber