code: public void sendRequest (
          int invOid, int invCode, int methodId, Object[] args, Transport transport)
      {
          if (_clobj == null) {
              log.warning("Dropping invocation request on shutdown director", "code", invCode,
                          "methodId", methodId);
              return;
          }
  
          // configure any invocation listener marshallers among the arguments
          int acount = args.length;
          for (int ii = 0; ii < acount; ii++) {
              Object arg = args[ii];
              if (arg instanceof ListenerMarshaller) {
                  ListenerMarshaller lm = (ListenerMarshaller)arg;
                  lm.requestId = nextRequestId();
                  lm.mapStamp = System.currentTimeMillis();
                  // create a mapping for this marshaller so that we can properly dispatch responses
                  // sent to it
                  _listeners.put(lm.requestId, lm);
              }
          }
  
          // create an invocation request event
          InvocationRequestEvent event = new InvocationRequestEvent(invOid, invCode, methodId, args);
          event.setTransport(transport);
  
          // because invocation directors are used on the server, we set the source oid here so that
          // invocation requests are properly attributed to the right client object when created by
          // server-side entities only sort of pretending to be a client
          event.setSourceOid(_clobj.getOid());
  
  //         Log.info("Sending invreq " + event + ".");
  
          // now dispatch the event
          _omgr.postEvent(event);
      }
docs: Requests that the specified invocation request be packaged up and sent to the supplied
  invocation oid.