docs: private int sendEntireMessage(SIBusMessage sibMessage, List<DataSlice> messageSlices)
        throws MessageCopyFailedException,
               IncorrectMessageTypeException,
               MessageEncodeFailedException,
               UnsupportedEncodingException
     {
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(this, tc, "sendEntireMessage",
                                                                                     new Object[]{sibMessage, messageSlices});
  
        int msgLen = 0;
  
        try
        {
           CommsServerByteBuffer buffer = poolManager.allocate();
  
           ConversationState convState = (ConversationState) getConversation().getAttachment();
           buffer.putShort(convState.getConnectionObjectId());
           buffer.putShort(mainConsumer.getClientSessionId());
           buffer.putShort(mainConsumer.getMessageBatchNumber());  // BIT16 Message batch
           // Put the entire message into the buffer in whatever way is suitable
           if (messageSlices == null)
           {
              msgLen = buffer.putMessage((JsMessage) sibMessage,
                                         convState.getCommsConnection(),
                                         getConversation());
           }
           else
           {
              msgLen = buffer.putMessgeWithoutEncode(messageSlices);
           }
  
           short jfapPriority = JFapChannelConstants.getJFAPPriority(sibMessage.getPriority());
           if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(this, tc, "Sending with JFAP priority of " + jfapPriority);
  
           getConversation().send(buffer,
                                  JFapChannelConstants.SEG_PROXY_MESSAGE,
                                  0,                                         // No request number
                                  jfapPriority,
                                  false,
                                  ThrottlingPolicy.BLOCK_THREAD,
                                  INVALIDATE_CONNECTION_ON_ERROR);
  
           messagesSent++;
        }
        catch (SIException e1)
        {
           FFDCFilter.processException(e1,
                                       CLASS_NAME + ".sendEntireMessage",
                                       CommsConstants.CATPROXYCONSUMER_SEND_MSG_01,
                                       this);
  
           SibTr.error(tc, "COMMUNICATION_ERROR_SICO2014", e1);
           msgLen = 0;
        }
  
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(this, tc, "sendEntireMessage", msgLen);
        return msgLen;
     }