docs: static void rcvRegisterAsyncConsumer(CommsByteBuffer request, Conversation conversation,
                                           int requestNumber, boolean allocatedFromBufferPool,
                                           boolean partOfExchange, boolean stoppable) //SIB0115d.comms
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "rcvRegisterAsyncConsumer",
                          new Object[]
                          {
                           request,
                           conversation,
                           requestNumber,
                           allocatedFromBufferPool,
                           stoppable //SIB0115d.comms
                          });
  
          short connectionObjectId = request.getShort(); // BIT16 ConnectionObjectId
          short consumerObjectId = request.getShort(); // BIT16 SyncConsumerSessionId
          short orderContextId = request.getShort(); // BIT16 OrderContextId
          short clientSessionId = request.getShort(); // BIT16 ClientSessionId
          int maxActiveMessages = request.getInt(); // BIT32 Max active messages
          long messageLockExpiry = request.getLong(); // BIT64 Message lock expiry
          int maxBatchSize = request.getInt(); // BIT32 Maximum batch size
          int maxSequentialFailures = 0; // BIT32 Max Sequental Failures                     SIB0115d.comms
          long hiddenMessageDelay = 0; // BIT64 hidden message delay
  
          // If stoppable get the maxSequentialFailures value
          if (stoppable) { //SIB0115d.comms
              maxSequentialFailures = request.getInt(); //SIB0115d.comms
              hiddenMessageDelay = request.getLong();
          } //SIB0115d.comms
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
          {
              SibTr.debug(tc, "connectionObjectID=" + connectionObjectId);
              SibTr.debug(tc, "consumerObjectID=" + consumerObjectId);
              SibTr.debug(tc, "orderContextID=" + orderContextId);
              SibTr.debug(tc, "clientSessionID=" + clientSessionId);
              SibTr.debug(tc, "maxActiveMessages=" + maxActiveMessages);
              SibTr.debug(tc, "messageLockExpiry=" + messageLockExpiry);
              SibTr.debug(tc, "maxBatchSize=" + maxBatchSize);
              SibTr.debug(tc, "maxSequentialFailures=" + maxSequentialFailures); //SIB0115d.comms
              SibTr.debug(tc, "hiddenMesageDelay=" + hiddenMessageDelay);
          }
  
          ConversationState convState = (ConversationState) conversation.getAttachment();
          CATMainConsumer mainConsumer = ((CATMainConsumer) convState.getObject(consumerObjectId));
          OrderingContext orderContext = null;
  
          // Get the message order context if there was one passed up
          if (orderContextId != CommsConstants.NO_ORDER_CONTEXT)
          {
              orderContext = ((CATOrderingContext) convState.getObject(orderContextId)).getOrderingContext(); // F201521
          }
  
          mainConsumer.setClientSessionId(clientSessionId);
  
          mainConsumer.setAsynchConsumerCallback(requestNumber,
                                                 maxActiveMessages,
                                                 messageLockExpiry,
                                                 maxBatchSize,
                                                 orderContext,
                                                 stoppable, //SIB0115d.comms
                                                 maxSequentialFailures,
                                                 hiddenMessageDelay); //SIB0115d.comms
  
          request.release(allocatedFromBufferPool);
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "rcvRegisterAsyncConsumer");
      }