- 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.
This commit is contained in:
2025-09-11 23:14:34 -06:00
parent 09d40879ca
commit 674eb2c81b
2 changed files with 29 additions and 3 deletions

View File

@@ -22,7 +22,33 @@ Public Sub Initialize(DB As String)
Log($"Inicializamos ${DB}, usuario: ${config.Get("User")}"$)
pool.Initialize(config.Get("DriverClass"), config.Get("JdbcUrl"), config.Get("User"), config.Get("Password"))
Dim jo As JavaObject = pool
jo.RunMethod("setMaxPoolSize", Array(5)) 'number of concurrent connections
' Leer valores del config.properties o usar valores por defecto
' Si el parámetro no se encuentra en el archivo .properties, se usará el segundo valor (el por defecto).
Dim initialPoolSize As Int = config.GetDefault("InitialPoolSize", 3) ' Por defecto 3
Dim minPoolSize As Int = config.GetDefault("MinPoolSize", 2) ' Por defecto 3
Dim maxPoolSize As Int = config.GetDefault("MaxPoolSize", 5) ' Por defecto 5
jo.RunMethod("setInitialPoolSize", Array(initialPoolSize)) ' Sets the inital pool size to 2
jo.RunMethod("setMinPoolSize", Array(minPoolSize)) ' Sets the min pool size to 2
jo.RunMethod("setMaxPoolSize", Array(maxPoolSize)) ' Max number of concurrent connections
' Define el tiempo máximo de inactividad en SEGUNDOS.
' Una conexión que permanezca en el pool sin ser usada por más de 300 segundos (5 minutos)
' será cerrada para liberar recursos, siempre y cuando no se viole el tamaño mínimo del pool (minPoolSize).
jo.RunMethod("setMaxIdleTime", Array As Object(300))
' Define la "edad" o tiempo de vida máximo de una conexión en SEGUNDOS.
' Después de 900 segundos (15 minutos) desde su creación, la conexión será marcada para ser
' eliminada y reemplazada por una nueva la próxima vez que regrese al pool.
' Esto previene problemas con conexiones "viciadas" y mantiene el pool saludable.
jo.RunMethod("setMaxConnectionAge", Array As Object(900))
' Define el tiempo máximo de espera por una conexión en MILISEGUNDOS.
' Si todas las conexiones del pool están ocupadas, una nueva petición esperará hasta
' 60000 milisegundos (1 minuto). Si ninguna conexión se libera en ese lapso, la petición
' fallará con un error. Esto evita que la aplicación se congele bajo carga pesada.
jo.RunMethod("setCheckoutTimeout", Array As Object(60000))
' com.mchange.v2.c3p0.ComboPooledDataSource [
' acquireIncrement -> 3,

View File

@@ -37,6 +37,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7=
ModuleClosedNodes8=
ModuleClosedNodes9=
NavigationStack=DBHandlerJSON,Initialize,16,0,DBHandlerJSON,Handle,207,6,ChangePassHandler,Handle,15,0,DBHandlerB4X,Handle,80,0,Main,AppStart,88,0,DBHandlerJSON,Class_Globals,10,0,DBHandlerJSON,SendErrorResponse,239,0,RDCConnector,LoadConfigMap,86,0,RDCConnector,GetCommand,90,0,RDCConnector,Initialize,75,0,RDCConnector,Class_Globals,9,0
NavigationStack=DBHandlerJSON,SendErrorResponse,239,0,RDCConnector,LoadConfigMap,86,0,RDCConnector,GetCommand,90,0,faviconHandler,Initialize,12,0,faviconHandler,Class_Globals,8,0,Manager,Initialize,9,0,RDCConnector,Class_Globals,9,0,Main,AppStart,49,0,Manager,Handle,23,6,RDCConnector,Initialize,38,0
SelectedBuild=0
VisibleModules=2,3,11,9,12,7,1
VisibleModules=2,3,11,9,12