Object delegateToFunctionService(ObjectName objectName, String methodName, Object[] arguments,
      String[] signature) throws MBeanException {
    Object[] functionArguments = new Object[5];
    functionArguments[0] = objectName;
    functionArguments[1] = methodName;
    functionArguments[2] = signature;
    functionArguments[3] = arguments;
    functionArguments[4] = member.getName();

    List<Object> result;
    try {
      ResultCollector resultCollector = FunctionService.onMember(member)
          .setArguments(functionArguments)
          .execute(ManagementConstants.MGMT_FUNCTION_ID);
      result = (List<Object>) resultCollector.getResult();
    } catch (Exception e) {
      if (logger.isDebugEnabled()) {
        logger.debug(" Exception while Executing Function {}", e.getMessage(), e);
      }
      // Only in case of Exception caused for Function framework.
      return null;
    } catch (VirtualMachineError e) {
      SystemFailure.initiateFailure(e);
      throw e;
    } catch (Throwable t) {
      SystemFailure.checkFailure();
      if (logger.isDebugEnabled()) {
        logger.debug(" Error while Executing Function {}", t.getMessage(), t);
      }
      return null;
    }

    return checkErrors(result.get(ManagementConstants.RESULT_INDEX));
  }
It will call the Generic function to execute the method on the remote VM
geode-core/src/main/java/org/apache/geode/management/internal/MBeanProxyInvocationHandler.java