code: private void sendMessageToClient(JsMessage jsMessage) throws SIResourceException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "sendMessageToClient", jsMessage);
  
          setCurrentlyDoingReceiveWithWait(false);
  
          try {
              // If we are at FAP9 or above we can do a 'chunked' send of the message in seperate
              // slices to make life easier on the Java memory manager
              final HandshakeProperties props = conversation.getHandshakeProperties();
              if (props.getFapLevel() >= JFapChannelConstants.FAP_VERSION_9) {
                  sendChunkedMessage(jsMessage);
              } else {
                  sendEntireMessage(jsMessage, null);
              }
          } catch (Exception e) {
              FFDCFilter.processException(e, CLASS_NAME + ".sendMessageToClient",
                                          CommsConstants.CATSYNCASYNCHREADER_SEND_MSG_03, this);
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
                  SibTr.debug(tc, "Encode failed: " + e.getMessage(), e);
  
              throw new SIResourceException(e);
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "sendMessageToClient");
      }
docs: This method will send a JsMessage back to the client in response to a synchronous receive.
  If the FAP level is 9 or above the message can be sent back to the client in chunks (rather
  than as a single large message) if the message is big enough to make this worthwhile.
  
  @param jsMessage The message to send
  
  @throws SIResourceException