API zu Firebird.conf (de)

Aktuelle API-Version 1.0.240924
Siehe Versionen dieser Anleitung in Englisch Portugiesisch Spanisch Deutsch Russisch

Wie man die API des Konfigurationsrechners für Firebird SQL verwendet

Um eine Konfiguration mit benutzerdefinierten Parametern über die API zu erhalten, müssen Sie die folgenden Schritte ausführen:

1) Registrieren

Sie müssen sich auf dem Portal cc.ib-aid.com registrieren; Es ist nur eine funktionierende E-Mail erforderlich.

2) Das API-Passwort erhalten

Das API-Aufrufpasswort ist für jeden registrierten Benutzer individuell. Es wird auf der Hauptseite im Widget "Firebird-Konfiguration über API erhalten" bereitgestellt.

3) Serverdaten erstellen

Um die Firebird-Konfiguration zu generieren, müssen Sie Daten über die Server- oder VM-Eigenschaften im JSON-Format übermitteln.

Die Daten zu den Server- oder VM-Eigenschaften sollten folgende Form haben:


data = {
    "mailLogin": "test",
    "passApi": "testparol",
    "serverVersion": "fb3",
    "serverArchitecture": "Classic",
    "cores": 8,
    "countUsers": 100,
    "sizeDb": 100,
    "pageSize": 4096,
    "ram": 16,
    "nameMainDb": "mainVM",
    "pathToMainDb": "c:/test/test.fdb",
    "osType": "Universal",
    "hwType": "Universal"
}
    

wo

  • mailLogin - Login für den Portalzugang, der während der Registrierung erhalten wurde,
  • passApi - Passwort für die API (siehe Punkt 2)
  • serverVersion - Die Firebird- oder HQBird-Serverversion sollte wie folgt angegeben werden: fb+Versionsnummer oder hq+Versionsnummer. Zum Beispiel fb2.5 - für Firebird 2.5 Server oder hq5 -- für HQBird 5 Server
  • serverArchitecture -- Serverarchitektur. Der Parameter kann einen der folgenden Werte annehmen: Classic, SuperClassic oder SuperServer
  • cores --- Anzahl der Serverkerne. Von 1 bis 100;
  • countUsers - Anzahl der Benutzer. Mindestwert - 1, maximal - 30000;
  • sizeDb -- Datenbankgröße;
  • pageSize --- Seitengröße festlegen. Werte können 4096, 8192, 16384 oder 32768 sein;
  • ram -- Server-RAM. Mindestwert - 4, maximal --- 10000;
  • nameMainDb -- Name der Hauptdatenbank. Die Zeichenlänge sollte 100 Zeichen nicht überschreiten;
  • pathToMainDb -- Pfad zur Hauptdatenbank. Die Zeichenlänge sollte 200 Zeichen nicht überschreiten;
  • osType -- Name des Betriebssystems, auf dem der Server verwendet wird. Der Parameterwert kann Windows, Linux oder Universal sein; in der API-Version 1.0.240924 ist dieser Parameter immer auf Universal gesetzt.
  • hwType -- Der Parameter kann einen der folgenden Werte annehmen: Hardware, Virtual oder Universal; in der API-Version 1.0.240924 ist dieser Parameter immer auf Universal gesetzt.

4) Die API anfordern

Sie müssen einen API-Aufruf machen

"https://cc.ib-aid.com/rest/clc/calculation-params"

5) Die Ergebnisse erhalten

Das Ergebnis des Aufrufs wird eine JSON-Datei mit den folgenden Feldern sein:

{ 'inputParameters': '', 'configurationFirebird': '', 'configurationDatabase': '', 'messageError': ''}

Sie können ein Beispiel unten sehen.

6) Fehlerbehandlung

Wenn beim Empfangen der Daten ein Fehler auftritt, wird dieser im Feld messageError angezeigt:

{'inputParameters':'','configurationFirebird': '', 'configurationDatabase': '', 'messageError': 'Count of users is null. Please, set value.'}

7) Parameter-Spezifikationsmerkmale

Wenn ein Parameter nicht an der Berechnung teilnimmt, wird sein Wert ignoriert. Sie können Parameter weglassen, die nicht in Berechnungen verwendet werden.

Je nach Versionen und Architekturen der Server ändert sich der Satz der notwendigen Eingabeparameter:

  • Für Firebird 2.5 und HQbird 2.5 Classic und SuperClassic Server sind die ausreichenden Parameter ram, countUsers und pageSize,
  • Für 2.5 SuperServer müssen keine Parameter ausgefüllt werden.
  • Für alle Serverversionen 3.0, 4.0, 5.0 und Classic und SuperClassic Architekturen müssen Sie ram, countUsers, cores und pageSize angeben.
  • Für die SuperServer-Architektur der Versionen 3.0, 4.0, 5.0 müssen alle Parameter definiert werden.

Beispiele

Beispiel eines API-Verbindungsaufrufs in Python


import requests

URL = "https://cc.ib-aid.com"
URLEND="/rest/clc/calculation-params"

data={
    "mailLogin":"test",
    "passApi":"testpassword",
    "serverVersion":"fb3",
    "serverArchitecture":"Classic",
    "cores":8,
    "countUsers":10,
    "sizeDb":100,
    "pageSize":4096,
    "ram":16,
    "nameMainDb":"mainBD",
    "pathToMainDb":"c:/test/test.fdb",
    "osType":"Universal",
    "hwType":"Universal"
}
r = requests.post(URL+URLEND,json=data)
print(r.status_code)
print(r.json())
    

Beispiel eines API-Verbindungsaufrufs in Java


package com.rest;
import java.io.Serializable;

public class ResultRest implements Serializable {

    private String configurationFirebird= "";
    private String configurationDatabase="";
    private String messageError="";
    private String inputParameters="";

    public String getInputParameters() {
        return inputParameters;
    }

    public String getConfigurationFirebird() {
        return configurationFirebird;
    }
    public String getConfigurationDatabase() {
        return configurationDatabase;
    }
    public String getMessageError() {
        return messageError;
    }
}

package com.rest;

import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.client.RestTemplate;
import org.json.simple.JSONObject;

public class CalculateRest {
    public static final String SERVER_URI = "https://cc.ib-aid.com";
    public static final String PUT_PARAMS = "/rest/clc/calculation-params";

    public static void main(String args[]){
        getCalcResult();
    }
    private static void getCalcResult() {
        try {
            RestTemplate restTemplate = new RestTemplate();
            JSONObject jobj = new JSONObject();
            jobj.put("serverArchitecture","classic");
            jobj.put("cores",1);
            jobj.put("countUsers",100);
            jobj.put("sizeDb",100);
            jobj.put("pageSize",4096);
            jobj.put("ram",200);
            jobj.put("serverVersion","fb2.5");
            jobj.put("nameMainDb","mainBD");
            jobj.put("pathToMainDb","c://test/test.fdb");
            jobj.put("osType","Universal");
            jobj.put("hwType","Universal");
            jobj.put("mailLogin","test");
            jobj.put("passApi","testpassword");
            ResultRest y = restTemplate.postForObject(SERVER_URI+PUT_PARAMS,jobj,ResultRest.class);
            System.out.println(y.getInputParameters());
            System.out.println(y.getConfigurationFirebird());
            System.out.println(y.getConfigurationDatabase());
            System.out.println(y.getMessageError());

        } catch (HttpClientErrorException e) {
            // Handle HTTP client errors (4xx status codes)
            if (e.getStatusCode().is4xxClientError()) {
                System.err.println("Client error: " + e.getStatusCode() + " - " + e.getStatusText());
                System.err.println("Response Body: " + e.getResponseBodyAsString());
            } else {
                System.err.println("Unexpected HTTP status: " + e.getStatusCode());
            }
        } catch (Exception ex){
            System.err.println("An error occurred: " + ex.getMessage());
        }
    }
}
    

Beispiel einer erhaltenen Konfiguration


#{"mailLogin":"[email protected]","ram":16,"countUsers":100,"sizeDb":100,"cores":8,"pageSize":8192,"nameMainDb":"testdb","pathToMainDb":"c:\\test\\test.fdb"}

#Konfiguration für Firebird 3 (vanilla) Classic (64 Bit)

ServerMode = Classic # Firebird Classic

DefaultDBCachePages = 2048

FileSystemCacheThreshold = 64K

TempCacheLimit = 32M

LockHashSlots = 65519 # slots

LockMemSize = 50M

MaxUnflushedWrites = -1

MaxUnflushedWriteTime = -1

WireCrypt = Enabled

RemoteServicePort = 3050

#Authentifizierungs-Plugin-Setup

# Empfehlung - verwenden Sie SELECT * FROM SEC$USERS
# um zu überprüfen, ob Sie Benutzer für alle Plugins haben

AuthServer = Srp, Legacy_Auth

UserManager = Srp, Legacy_UserManager

#Sicherheitsdatenbank

security.db = $(dir_secDb)/security3.fdb

{
    RemoteAccess = false
    DefaultDbCachePages = 250
}
    

Support

Für alle Fragen zur Verwendung des Konfigurationsrechners schreiben Sie bitte an [email protected]