code: static void rcvSessReceive(CommsServerByteBuffer request,
                                 Conversation conversation,
                                 int requestNumber,
                                 boolean allocatedFromBufferPool,
                                 boolean partOfExchange)
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "rcvSessReceive",
                          new Object[]
                          {
                           request,
                           conversation,
                           "" + requestNumber,
                           "" + allocatedFromBufferPool
                          });
  
          ConversationState conversationState = (ConversationState) conversation.getAttachment();
          ServerLinkLevelState linkState = (ServerLinkLevelState) conversation.getLinkLevelAttachment();
  
          final boolean optimizedTx = CommsUtils.requiresOptimizedTransaction(conversation);
          short connectionObjectID = request.getShort(); // BIT16 ConnectionObjectId
          short consumerObjectID = request.getShort(); // BIT16 ConsumerObjectId
          int transactionObjectId = request.getSITransactionId(connectionObjectID, linkState, optimizedTx);
          long timeout = request.getLong(); // BIT64 TimeOut
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
          {
              SibTr.debug(tc, "connectionObjectID", connectionObjectID);
              SibTr.debug(tc, "consumerObjectID", consumerObjectID);
              SibTr.debug(tc, "transaction Id", transactionObjectId);
              SibTr.debug(tc, "timeout", timeout);
          }
  
          CATMainConsumer mainConsumer = (CATMainConsumer) conversationState.getObject(consumerObjectID);
  
          mainConsumer.receive(requestNumber, transactionObjectId, timeout);
  
          request.release(allocatedFromBufferPool);
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "rcvSessReceive");
      }
docs: Receive a message using the Synchronous Consumer Session provided by the client.
  
  The receive is farmed off to the CATConsumer handling the receives for this session.
  Typically this will be the synchronous handler.
  
  Fields:
  
  BIT16 ConnectionObjectId
  BIT16 SyncConsumerSessionId
  BIT32 TransactionId
  BIT64 TimeOut
  
  @param request
  @param conversation
  @param requestNumber
  @param allocatedFromBufferPool
  @param partOfExchange