public SearchObject getSearchObject(String dbname, Vector<String> fields) throws RemoteException {
    SearchObject searchObject = null;

    System.err.println("Remote getSearchObject for archive " + dbname + " starts");
    QueryServerArchiveInfo archive = QueryServer.archives.get(dbname);
    if (archive != null)
      try {
        DBHandling dbHandle = null;
        DBStructure dbStructure = null;
        dbHandle =
            new DBHandling(
                "jdbc:mysql://" + archive.computer + ":" + archive.port + "/" + archive.database,
                archive.user,
                archive.password,
                true);
        dbStructure = dbHandle.getDBStructure();
        DBSqlHandler sqlHandler =
            new DBSqlHandler(
                DBConstants.DBDRIVER,
                "jdbc:mysql://" + archive.computer + ":" + archive.port + "/" + archive.database,
                archive.user,
                archive.password);
        searchObject = sqlHandler.getSearchObject(dbStructure, fields);
      } catch (Exception e) {
        System.out.println(
            "Remote query server access exception = " + e.getMessage() + e.toString());
        e.printStackTrace();
      }
    System.err.println("Remote getSearchObject done");
    return searchObject;
  }
  public Vector<String> getTablesByContent(String dbname, String searchString)
      throws RemoteException {
    SearchResult searchResult = null;

    System.err.println("Remote getTablesByContent for archive " + dbname + " starts");
    QueryServerArchiveInfo archive = QueryServer.archives.get(dbname);
    if (archive != null)
      try {
        DBHandling dbHandle = null;
        DBStructure dbStructure = null;
        dbHandle =
            new DBHandling(
                "jdbc:mysql://" + archive.computer + ":" + archive.port + "/" + archive.database,
                archive.user,
                archive.password,
                true);
        dbStructure = dbHandle.getDBStructure();
        System.err.println("Remote getTablesByContent done");
        return dbStructure.getTablesByContent(searchString);
      } catch (Exception e) {
        System.out.println(
            "Remote query server access exception = " + e.getMessage() + e.toString());
        e.printStackTrace();
      }
    System.err.println("Remote getTablesByContent done");

    return null;
  }
  public DBStructure getDBStructure(String dbname) throws RemoteException {
    DBStructure dbs = null;

    System.err.println("Remote getDBStructure for archive " + dbname + " starts");
    QueryServerArchiveInfo archive = QueryServer.archives.get(dbname);
    if (archive != null)
      try {
        DBHandling dbHandle =
            new DBHandling(
                "jdbc:mysql://" + archive.computer + ":" + archive.port + "/" + archive.database,
                archive.user,
                archive.password,
                true);
        dbs = dbHandle.getDBStructure();
      } catch (Exception e) {
        System.out.println(
            "Remote query server access exception = " + e.getMessage() + e.toString());
        e.printStackTrace();
      }

    System.err.println("Remote getDBStructure done");
    return dbs;
  }