Commit Graph

20 Commits

Author SHA1 Message Date
e04cdded47 - VERSION 5.09.14
```
feat: Implement hot-swap for DB config reload and JSON POST support

**Cambios Principales:**

1. **Hot-Swap para recarga de configuraciones de DB sin reiniciar servidor**
2. **Migración a ReentrantLock para sincronización por incompatibilidad con Sync**
3. **Soporte para peticiones POST con Content-Type: application/json**
4. **Mejoras en inicialización del pool de conexiones y soporte multi-DB**

**Problemas Resueltos:**

- Falta de "Hot-Swap" en `reload`: El comando no permitía recarga dinámica de configuraciones sin reinicio
- Ausencia de mecanismo de cierre de pools en RDCConnector para liberación ordenada de conexiones
- Incompatibilidad con `Sync` en entorno B4X
- Procesamiento incorrecto de peticiones POST con Content-Type: application/json
- Inicialización incorrecta de pools C3P0 con TotalConnections: 0
- Configuración inconsistente de parámetros críticos de C3P0
- jdbcUrl truncada/vacía en logs por shadowing de variables

**Cambios Implementados:**

**Manager.bas:**
- Reemplazo completo de lógica para comando "reload"
- Creación de nuevos conectores antes de reemplazar los antiguos
- Sincronización con ReentrantLock para acceso thread-safe
- Patrón seguro de bloqueo sin `Finally` usando bandera booleana
- Cierre explícito de oldConnectors después del reemplazo
- Validación de inicialización y control de errores robusto
- Registro detallado en log HTML del proceso

**RDCConnector.bas:**
- Implementación de método `Public Sub Close()` para liberar pools C3P0
- Corrección de shadowing de variable `config` en LoadConfigMap
- Reordenamiento de Initialize
- Configuración completa de C3P0 antes de adquirir conexiones
- Forzar reportes de errores con acquireRetryAttempts y breakAfterAcquireFailure
- Activación forzada del pool con conexión temporal

**Main.bas:**
- Declaración de `MainConnectorsLock As JavaObject` (ReentrantLock)
- Inicialización del lock en AppStart
- Declaración separada de conectores (con1, con2, con3, con4)

**DBHandlerJSON.bas:**
- Detección de peticiones POST con Content-Type: application/json
- Lectura de JSON desde InputStream en lugar de parámetro URL
- Cierre explícito del InputStream para liberación de recursos
- Corrección de nombres de variables para evitar conflictos
- Mensajes de error mejorados para ambos métodos (legacy y nuevo)

**Beneficios:**
- Recarga en caliente de configuraciones DB sin interrupción de servicio
- Mayor disponibilidad y mantenibilidad del servidor
- Prevención de fugas de recursos con cierre ordenado de pools
- Compatibilidad con estándares APIs web (POST application/json)
- Inicialización robusta y confiable de pools de conexiones
- Mejor reporting de errores y diagnóstico de problemas
- Soporte multi-DB más estable y confiable
```
2025-09-15 11:44:48 -06:00
674eb2c81b - VERSION 5.09.08
- Se agregó que se puedan configurar en el config.properties los siguientes parametros:

  - setInitialPoolSize = 3
  - setMinPoolSize = 2
  - setMaxPoolSize = 5

- Se agregaron en duro a RDConnector los siguientes parametros:

  - setMaxIdleTime <-- Tiempo máximo de inactividad de la conexión.
  - setMaxConnectionAge <-- Tiempo de vida máximo de una conexión.
  - setCheckoutTimeout <-- Tiempo máximo de espera por una conexión.
2025-09-11 23:15:02 -06:00
jaguerrau
09d40879ca Update README.md 2025-09-09 09:57:19 -06:00
jaguerrau
b426c06eb2 Update README.md
Se quito la sección que mencionaba que para el orden de los parametros era necesario agregar par1, par2, etc, porque los parametros se enviaban en un mapa y ahora se envian en una lista y ya no es necesario el nombre.
2025-09-08 22:10:11 -06:00
48dbd1f034 - VERSION 5.09.08
- Se cambio el codigo para que en lugar de esperar un mapa con los parametros del query y nombres de los parametros (par1, par2, etc) paradefinir el ordenamiento, ahora se espera una lista [1,"2",3], y el orden de los parametros se toma directamente del orden en el que se mandan, de la misma forma que en B4A.
5.09.08
2025-09-08 22:04:22 -06:00
jaguerrau
2f9569b585 Delete RDCHandler.bas 2025-09-05 00:10:42 -06:00
9d82925dec - VERSION 5.09.04
- Se cambio el nombre del handler de B4X a DBHandlerB4X.
- Se quitaron los handlers que ya no servian.
5.09.04
2025-09-05 00:02:14 -06:00
2bf75cadc0 - VERSION 5.09.01
- Se corrigieron errores en "Manager".
- Se cambiaron nombres de handlers.
- Se corrigio un error en la ruta de "www/login.html".
5.09.01
2025-09-01 20:38:33 -06:00
jaguerrau
4083696bbe Add files via upload 2025-09-01 14:26:36 -06:00
jaguerrau
93becc7b0e Update README.md 2025-08-30 22:09:07 -06:00
e32019904f - VERSION 5.08.31
- Cambis al README.md
2025-08-30 21:29:49 -06:00
cacf9e7b89 - VERSION 5.08.31
- Se corrigio que no avisaba cuando el query no requeria parametros y si se enviaban (en el JSONHandler)
5.08.31
2025-08-30 21:09:48 -06:00
986eb5e8d4 - 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.
5.08.30
2025-08-30 20:35:24 -06:00
911879b5d5 - VERSION 5.08.25
- Se modificaron los archivos de reinicio de los servicios (servidor y Bow) y se cambio el menu del "manager" para que a seccion de "reload" incluya la liga a reinciar Bow.
2025-08-25 11:52:16 -06:00
6597ef3394 - VERSION 5.08.02
- Se hizo un cambio para tratar de que las conexiones se "identifiquen" con Oracle y Jorge pueda saber que conexiones/recursos estamos ocupando
2025-08-02 22:47:01 -06:00
Jose Alberto Guerra Ugalde
45e4336d3c - VERSION 4.11.14
- Se agregó el parametro "setMaxPoolSize=5" para que solo genere 5 conexiones a la base de datos, antes generaba 15.
- Se quitaron lineas previamente comentadas.
4.11.14
2024-11-15 03:36:38 -06:00
jaguerrau
a801577b6f Update README.md 2024-11-09 02:47:05 -06:00
jaguerrau
93e7d3898b Update README.md 2024-11-09 02:45:19 -06:00
Jose Alberto Guerra Ugalde
9bf8b82adf - VERSION 4.11.09
- Commit inicial
2024-11-09 01:59:09 -06:00
jaguerrau
431c839668 Initial commit 2024-11-09 01:53:29 -06:00