API Firebird.conf (Pt-Br)

Versão atual da API 1.0.240924
Veja as versões desta instrução em Inglês Português Espanhol Alemão Russo

Como usar a API do Calculador de Configuração para Firebird SQL

Para obter uma configuração com parâmetros personalizados via API, você precisa realizar os seguintes passos:

1) Registrar

Você precisa se registrar no portal cc.ib-aid.com; Apenas um e-mail funcional é necessário.

2) Obter a senha da API

A senha de chamada da API é individual para cada usuário registrado. Ela é fornecida na página principal no widget "Obter configuração do Firebird via API".

3) Formar os dados do servidor

Para gerar a configuração do Firebird, você precisa transmitir dados sobre as características do servidor ou VM em formato json.

Os dados das características do servidor ou VM devem ter a seguinte forma:


data = {
    "mailLogin": "teste",
    "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"
}
    

onde

  • mailLogin - login para acesso ao portal, obtido durante o registro,
  • passApi - senha para a API (veja o Ponto 2)
  • serverVersion - a versão do servidor firebird ou hqbird deve ser especificada da seguinte forma: fb+número da versão ou hq+número da versão. Por exemplo, fb2.5 - para o servidor Firebird 2.5 ou hq5 -- para o servidor HQBird 5
  • serverArchitecture -- arquitetura do servidor. O parâmetro pode ter um dos valores: Classic, SuperClassic ou SuperServer
  • cores --- número de núcleos do servidor. De 1 a 100;
  • countUsers - número de usuários. Valor mínimo - 1, máximo - 30000;
  • sizeDb -- tamanho do banco de dados;
  • pageSize --- definir o tamanho da página. Os valores podem ser 4096, 8192, 16384 ou 32768;
  • ram -- RAM do servidor. Valor mínimo - 4, máximo --- 10000;
  • nameMainDb -- nome do banco de dados principal. O comprimento da string não deve exceder 100 caracteres;
  • pathToMainDb -- caminho para o banco de dados principal. O comprimento da string não deve exceder 200 caracteres;
  • osType -- nome do sistema operacional onde o servidor é usado. O valor do parâmetro pode ser Windows, Linux ou Universal; na versão da API 1.0.240924 este parâmetro é sempre definido como Universal.
  • hwType -- O parâmetro pode ter um dos valores: Hardware, Virtual ou Universal; na versão da API 1.0.240924 este parâmetro é sempre definido como Universal.

4) Solicitar a API

Você precisa fazer uma chamada de API

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

5) Obter os resultados

O resultado da chamada será um arquivo JSON com os seguintes campos:

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

Você pode ver um exemplo abaixo.

6) Tratamento de erros

Se ocorrer um erro ao receber os dados, ele será exibido no campo messageError:

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

7) Características da especificação de parâmetros

Se um parâmetro não participar do cálculo, seu valor será ignorado. Você pode omitir parâmetros que não são usados nos cálculos.

Dependendo das versões e arquiteturas dos servidores, o conjunto de parâmetros de entrada necessários muda:

  • Para os servidores Firebird 2.5 e HQbird 2.5 Classic e SuperClassic, os parâmetros suficientes são ram, countUsers e pageSize,
  • Para o SuperServer 2.5, nenhum parâmetro precisa ser preenchido.
  • Para todas as versões de servidor 3.0, 4.0, 5.0 e arquiteturas Classic e SuperClassic, você precisa especificar ram, countUsers, cores e pageSize.
  • Para a arquitetura SuperServer das versões 3.0, 4.0, 5.0, todos os parâmetros precisam ser definidos.

Exemplos

Exemplo de chamada de API em 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())
    

Exemplo de chamada de API em 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());
        }
    }
}
    

Exemplo de configuração obtida


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

#Configuração para Firebird 3 (vanilla) Classic (64 bits)

ServerMode = Classic # Firebird Classic

DefaultDBCachePages = 2048

FileSystemCacheThreshold = 64K

TempCacheLimit = 32M

LockHashSlots = 65519 # slots

LockMemSize = 50M

MaxUnflushedWrites = -1

MaxUnflushedWriteTime = -1

WireCrypt = Enabled

RemoteServicePort = 3050

#configuração do plugin de autenticação

# Recomendação - use SELECT * FROM SEC$USERS
# para verificar se você tem usuários para todos os plugins

AuthServer = Srp, Legacy_Auth

UserManager = Srp, Legacy_UserManager

#banco de dados de segurança

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

{
    RemoteAccess = false
    DefaultDbCachePages = 250
}
    

Suporte

Para todas as perguntas sobre o uso do calculador de configuração, por favor escreva para [email protected]