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 5serverArchitecture-- arquitetura do servidor. O parâmetro pode ter um dos valores: Classic, SuperClassic ou SuperServercores--- 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]