docs: @Override
      public VirtualConnection sendRequestBody(WsByteBuffer[] body, InterChannelCallback callback, boolean bForce) throws MessageSentException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.entry(tc, "sendRequestBody(async)");
          }
  
          if (isMessageSent()) {
              throw new MessageSentException("Message already sent");
          }
  
          // if headers haven't been sent, then set for partial body transfer
          if (!headersSent()) {
              if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) {
                  Tr.debug(tc, "Setting partial body true");
              }
              setPartialBody(true);
          }
  
          getLink().setAllowReconnect(true);
          setForceAsync(bForce);
          setAppWriteCallback(callback);
          VirtualConnection vc = sendOutgoing(body, getRequestImpl(), HttpOSCWriteCallback.getRef());
          // Note: if forcequeue is true, then we will not get a VC object as
          // the lower layer will use the callback and return null
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) {
              Tr.exit(tc, "sendRequestBody(async): " + vc);
          }
          return vc;
      }