docs: @Override
      public Serializable invokeCommand(String key, String commandName, Serializable commandData, SITransaction transaction)
                      throws SIIncorrectCallException,
                      SINotAuthorizedException,
                      SICommandInvocationFailedException,
                      SIConnectionUnavailableException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "invokeCommand",
                          new Object[] { key, commandName, commandData, transaction });
  
          Serializable returnData = internalInvokeCommand(key,
                                                          commandName,
                                                          commandData,
                                                          true, //always a tx invoke for this flavour of invokeCommand
                                                          transaction);
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "invokeCommand", returnData);
  
          return returnData;
      }