docs: public boolean executeAsync(ProcedureCallback callback, String procedure, Object... parameters)
              throws NoConnectionsException, IOException
      {
          ClientImpl currentClient = this.getClient();
          try {
              return currentClient.callProcedure(new TrackingCallback(this, procedure, callback),
                      procedure, parameters);
          }
          catch (NoConnectionsException e) {
              this.dropClient(currentClient);
              throw e;
          }
      }