- VERSION 5.08.30

- Se cambiaron los 4 handlers de B4A a uno solo que toma el DB de la ruta automáticamente.
- Se agregaron validaciones del numero de parametros y si el query no los requiere o se dan de mas o de menos, manda un error especificando eso, ya no se reciben errores directos de la base de datos, esto fue tanto para B4A como para JSON.
- Se modificó el Readme.md para incluir todos estos cambios.
This commit is contained in:
2025-08-30 20:31:50 -06:00
parent 911879b5d5
commit 986eb5e8d4
19 changed files with 955 additions and 639 deletions

View File

@@ -1,48 +1,41 @@
# jRDC-Multi (B4J)
Servidor de DBRequest que puede cargar hasta 4 archivos de config.properties al mismo tiempo.
# Servidor jRDC2-Multi Modificado (B4J)
Los archivos se deben de llamar:
## 1. Introducción
- config.propierties
- config.DB2.properties
- config.DB3.properties
- config.DB4.properties
Este proyecto es una versión modificada del servidor [jRDC2 original](https://www.b4x.com/android/forum/threads/b4x-jrdc2-b4j-implementation-of-rdc-remote-database-connector.61801/#content), diseñada para actuar como un backend robusto y flexible. Su función principal es recibir peticiones HTTP, ejecutar comandos SQL predefinidos contra una base de datos y devolver los resultados en un formato estructurado.
No es necesario que sean 4 archivos, solo toma en cuenta los archivos existentes en el directorio.
Ha sido adaptado para servir tanto a clientes nativos (B4A/B4i) como a clientes web modernos (JavaScript, a través de frameworks como React, Vue, Angular, etc.).
En la aplicacion movil, al URL del servidor se le agrega al final /DB2, /DB3 o /DB4. (Puerto de ejemplo: 1781)
## 2. Características Principales
- Para usar el config.properties => http://keymon.lat:1781
- Para usar el config.DB2.properties => http://keymon.lat:1781/DB2
- Para usar el config.DB3.properties => http://keymon.lat:1781/DB3
- Para usar el config.DB4.properties => http://keymon.lat:1781/DB4
* **Soporte para Múltiples Bases de Datos**: Puede cargar y gestionar hasta 4 archivos de configuración (`config.properties`) simultáneamente.
* **Comandos SQL Externalizados**: Las sentencias SQL se definen en los archivos de configuración, permitiendo modificarlas sin recompilar el servidor.
* **Doble Handler de Peticiones**: Incluye un handler clásico para clientes B4X y un handler JSON para clientes web.
* **Validaciones de Seguridad**: Verifica la existencia de comandos y la correspondencia en el número de parámetros.
* **Administración Remota**: Permite verificar el estado, recargar la configuración y reiniciar el servidor a través de URLs específicas.
El puerto es el mismo para todos los archivos, **sin importar** que diga en cada archivo, solo toma el puerto especificado en el **primer** config.properties.
## 3. Configuración
El usuario, contraseña y JdbcUrl, **si** los toma del archivo correspondiente.
### 3.1. Archivos de Configuración
Se puede revisar el **estatus** del servidor en el URL:
El sistema está preparado para manejar hasta **cuatro configuraciones de bases de datos** (de `DB1` a `DB4`). No es necesario tener los cuatro archivos; el servidor cargará únicamente los que encuentre.
- http://keymon.lat:1781/test
La nomenclatura de los archivos es fundamental:
Se puede forzar al servidor (**sin reiniciarlo**) a que **recargue** los archivos config.properties en el URL:
* `config.properties` (para `DB1`)
* `config.DB2.properties`
* `config.DB3.properties`
* `config.DB4.properties`
- http://keymon.lat:1781/manager?command=reload
**Notas importantes:**
Se puede reiniciar el servidor con el URL:
* El **puerto** del servidor se toma **únicamente** del archivo principal `config.properties`, sin importar lo que digan los demás.
* Los datos de conexión (`JdbcUrl`, usuario, contraseña) sí se toman del archivo correspondiente a cada base de datos.
- http://keymon.lat:1781/manager?command=rsx
- Este comando utiliza los archivos start.bat, start2.bat y stop.bat
### 3.2. Añadir Drivers de Bases de Datos Adicionales
Si se esta corriendo el servidor con PM2, se puede reinciar con el URL:
Si necesitas conectarte a otros tipos de bases de datos (ej. Oracle), debes agregar el archivo del controlador `.jar` al proyecto antes de compilar. En el módulo `Main`, añade una línea como la siguiente:
- http://keymon.lat:1781/manager?command=rpm2
- Este comando ejecuta el archivo reiniciaProcesoPM2.bat, y **asume** que el nombre del proceso es "RDC-Multi", si no es asi, hay que **modificar** el archivo .bat
## Agregar drivers de mas bases de datos
Si se necesitan agregar mas controladores para conectarse a otras bases de datos, hay que agregar una linea a "Main":
- #AdditionalJar: ojdbc11 <= este es el nombre del archivo .jar, en este caso "C:\Android\AdditionalLibs\B4J\ojdbc11.jar"
- Al compilar la aplicación, el archivo del controlador se incluye en el archivo .jar del servidor (jRDC-Multi.jar) y no es necesario copiarlo o agregarlo al directorio del servidor en producción.
```b4x
' Este es el nombre del archivo .jar, en este caso "C:\Ruta\Adicional\ojdbc11.jar"
#AdditionalJar: ojdbc11