docs: public void consumerSessionStopped() {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "consumerSessionStopped");
  
          // Inform the main consumer instance that message processor has stopped the session, this will prevent any more
          // restart requests from the client starting the consumer session by mistake, instead we must wait for a start
          // request from the application.
          mainConsumer.stopStoppableSession(); //471642
  
          ConversationState convState = (ConversationState) getConversation().getAttachment();
  
          CommsServerByteBuffer buffer = poolManager.allocate();
  
          // Put conversation id
          buffer.putShort(convState.getConnectionObjectId());
  
          // Put session id
          buffer.putShort(getClientSessionId());
  
          try {
              getConversation().send(buffer, JFapChannelConstants.SEG_ASYNC_SESSION_STOPPED_NOREPLY, 0, JFapChannelConstants.PRIORITY_MEDIUM, false, ThrottlingPolicy.BLOCK_THREAD,
                                     null);
          } catch (SIException e) {
              FFDCFilter.processException(e, CLASS_NAME + ".consumerSessionStopped", CommsConstants.CATASYNCHCONSUMER_SENSSION_STOPPED_01, this);
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  SibTr.debug(this, tc, e.getMessage(), e);
              SibTr.error(tc, "COMMUNICATION_ERROR_SICO2017", e);
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "consumerSessionStopped");
      }