API Firebird.conf (es)
Versión actual de la API 1.0.240924
Vea las versiones de esta instrucción en Inglés Portugués Español Alemán Ruso
Cómo usar la API del Calculador de Configuración para Firebird SQL
Para obtener una configuración con parámetros personalizados a través de la API, debe realizar los siguientes pasos:
1) Registrarse
Debe registrarse en el portal cc.ib-aid.com; Solo se requiere un correo electrónico funcional.
2) Obtener la contraseña de la API
La contraseña de la llamada API es individual para cada usuario registrado. Se proporciona en la página principal en el widget “Obtener configuración de Firebird a través de la API”.
3) Formar los datos del servidor
Para generar la configuración de Firebird, debe transmitir datos sobre las características del servidor o VM en formato json.
Los datos de las características del servidor o VM deben tener la siguiente forma:
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"
}
donde
mailLogin- inicio de sesión para el acceso al portal, obtenido durante el registro,passApi- contraseña para la API (ver Punto 2)serverVersion- la versión del servidor firebird o hqbird debe especificarse de la siguiente manera: fb+número de versión o hq+número de versión. Por ejemplo, fb2.5 - para el servidor Firebird 2.5 o hq5 – para el servidor HQBird 5serverArchitecture-- arquitectura del servidor. El parámetro puede tomar uno de los valores: Classic, SuperClassic o SuperServercores--- número de núcleos del servidor. De 1 a 100;countUsers- número de usuarios. Valor mínimo - 1, máximo - 30000;sizeDb-- tamaño de la base de datos;pageSize--- establecer el tamaño de la página. Los valores pueden ser 4096, 8192, 16384 o 32768;ram-- RAM del servidor. Valor mínimo - 4, máximo — 10000;nameMainDb-- nombre de la base de datos principal. La longitud de la cadena no debe exceder los 100 caracteres;pathToMainDb-- ruta a la base de datos principal. La longitud de la cadena no debe exceder los 200 caracteres;osType-- nombre del sistema operativo donde se utiliza el servidor. El valor del parámetro puede ser Windows, Linux o Universal; en la versión de la API 1.0.240924 este parámetro siempre se establece como Universal.hwType-- El parámetro puede tomar uno de los valores: Hardware, Virtual o Universal; en la versión de la API 1.0.240924 este parámetro siempre se establece como Universal.
4) Solicitar la API
Debe realizar una llamada API
"https://cc.ib-aid.com/rest/clc/calculation-params"
5) Obtener los resultados
El resultado de la llamada será un archivo JSON con los siguientes campos:
{ 'inputParameters': '', 'configurationFirebird': '', 'configurationDatabase': '', 'messageError': ''}
Puedes ver un ejemplo a continuación.
6) Manejo de errores
Si ocurre un error al recibir los datos, se mostrará en el campo messageError:
{'inputParameters':'','configurationFirebird': '', 'configurationDatabase': '', 'messageError': 'Count of users is null. Please, set value.'}
7) Características de la especificación de parámetros
Si un parámetro no participa en el cálculo, su valor será ignorado. Puedes omitir parámetros que no se utilizan en los cálculos.
Dependiendo de las versiones y arquitecturas de los servidores, el conjunto de parámetros de entrada necesarios cambia:
- Para los servidores Firebird 2.5 y HQbird 2.5 Classic y SuperClassic, los parámetros suficientes son ram, countUsers y pageSize,
- Para el SuperServer 2.5, no es necesario llenar ningún parámetro.
- Para todas las versiones de servidor 3.0, 4.0, 5.0 y arquitecturas Classic y SuperClassic, necesitas especificar ram, countUsers, cores y pageSize.
- Para la arquitectura SuperServer de las versiones 3.0, 4.0, 5.0, todos los parámetros deben ser definidos.
Ejemplos
Ejemplo de llamada de conexión API en 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())
Ejemplo en 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());
}
}
}
Ejemplo de configuración obtenida
#{"mailLogin":"[email protected]","ram":16,"countUsers":100,"sizeDb":100,"cores":8,"pageSize":8192,"nameMainDb":"testdb","pathToMainDb":"c:\\test\\test.fdb"}
#Configuración 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
#configuración del plugin de autenticación
# Recomendación - use SELECT * FROM SEC$USERS
# para verificar que tiene usuarios para todos los plugins
AuthServer = Srp, Legacy_Auth
UserManager = Srp, Legacy_UserManager
#base de datos de seguridad
security.db = $(dir_secDb)/security3.fdb
{
RemoteAccess = false
DefaultDbCachePages = 250
}
Soporte
Para todas las preguntas relacionadas con el uso del calculador de configuración, por favor escriba a [email protected]