docs: private void sendEntireMessage(JsMessage jsMessage, List<DataSlice> messageSlices)
                      throws UnsupportedEncodingException, MessageCopyFailedException,
                      IncorrectMessageTypeException, MessageEncodeFailedException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "sendEntireMessage",
                                             new Object[] { jsMessage, messageSlices });
  
          int msgLen = 0;
  
          try {
              CommsServerByteBuffer buffer = poolManager.allocate();
  
              ConversationState convState = (ConversationState) conversation.getAttachment();
              buffer.putShort(convState.getConnectionObjectId());
              if (!mainConsumer.getUsingConnectionReceive()) {
                  buffer.putShort(mainConsumer.getConsumerSessionId());
              }
              // Put the message into the buffer in whatever way is suitable
              if (messageSlices == null) {
                  msgLen = buffer.putMessage(jsMessage,
                                             convState.getCommsConnection(),
                                             conversation);
              } else {
                  msgLen = buffer.putMessgeWithoutEncode(messageSlices);
              }
  
              // Decide on the segment
              int seg = JFapChannelConstants.SEG_RECEIVE_SESS_MSG_R;
              if (mainConsumer.getUsingConnectionReceive()) {
                  seg = JFapChannelConstants.SEG_RECEIVE_CONN_MSG_R;
              }
  
              int jfapPriority = JFapChannelConstants.getJFAPPriority(jsMessage.getPriority());
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  SibTr.debug(this, tc, "Sending with JFAP priority of " + jfapPriority);
  
              conversation.send(buffer,
                                seg,
                                requestNumber,
                                jfapPriority,
                                false,
                                ThrottlingPolicy.BLOCK_THREAD,
                                null);
  
              mainConsumer.messagesSent++;
          } catch (SIException e) {
              //No FFDC code needed
              //Only FFDC if we haven't received a meTerminated event.
              if (!((ConversationState) mainConsumer.getConversation().getAttachment()).hasMETerminated()) {
                  FFDCFilter.processException(e, CLASS_NAME + ".sendEntireMessage",
                                              CommsConstants.CATSYNCASYNCHREADER_SEND_MSG_01, this);
              }
  
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  SibTr.debug(tc, e.getMessage(), e);
  
              SibTr.error(tc, "COMMUNICATION_ERROR_SICO2015", e);
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "sendEntireMessage");
      }