Configuración de DataSources en TomEE usando system.properties
Cuando desplegamos aplicaciones en TomEE (Tomcat con extensiones Java EE), es habitual usar DataSources gestionados por el contenedor. Esto permite:
- Manejar pools de conexiones automáticamente.
- Evitar hardcodear credenciales en el código.
- Reusar conexiones entre diferentes aplicaciones.
En este post nos centraremos en configuración en TomEE/Tomcat.
1. Descargar el driver JDBC
Antes de que TomEE pueda conectarse a la base de datos, necesitamos el driver correspondiente. Por ejemplo, para PostgreSQL:
cd /tmp wget https://jdbc.postgresql.org/download/postgresql-42.5.4.jar sudo cp /tmp/postgresql-42.5.4.jar /srv/tomee/lib/
Qué hacemos:
- `wget` descarga el driver JDBC.
- Se copia al directorio `lib` de TomEE para que todas las aplicaciones puedan usarlo.
2. Configurar DataSources en system.properties
TomEE permite definir múltiples DataSources en un único archivo `system.properties` ubicado en conf/
. Esto centraliza la configuración y permite reutilizar pools de conexiones.
# ============================================================ # DATASOURCES PARA MULTIPLES APLICACIONES # ============================================================ # DataSource para Proyecto Neto proyectonetoDS = new://Resource?type=DataSource proyectonetoDS.JdbcDriver = org.postgresql.Driver proyectonetoDS.JdbcUrl = jdbc:postgresql://localhost:5432/proyectoneto_database proyectonetoDS.UserName = postgres proyectonetoDS.Password = clavesecreta proyectonetoDS.MaxActive = 20 proyectonetoDS.TestOnBorrow = true proyectonetoDS.ValidationQuery = SELECT 1 # DataSource para Hnasociados hnasociadosDS = new://Resource?type=DataSource hnasociadosDS.JdbcDriver = org.postgresql.Driver hnasociadosDS.JdbcUrl = jdbc:postgresql://localhost:5432/hnasociados_database hnasociadosDS.UserName = postgres hnasociadosDS.Password = clavesecreta hnasociadosDS.MaxActive = 15 hnasociadosDS.TestOnBorrow = true hnasociadosDS.ValidationQuery = SELECT 1
Qué hacemos:
- Los identificadores `proyectonetoDS` y `hnasociadosDS` serán los nombres JNDI.
- Se indica el driver, URL, usuario y contraseña.
- `MaxActive` define el tamaño máximo del pool.
- `TestOnBorrow` y `ValidationQuery` permiten validar las conexiones antes de entregarlas.
3. Cómo TomEE reconoce estos DataSources
Al iniciar, TomEE:
- Lee
system.properties
. - Crea los DataSources definidos allí.
- Los pone a disposición del contenedor mediante JNDI, usando exactamente los nombres que definimos.
Así, cualquier aplicación puede inyectar o buscar estas conexiones sin preocuparse por la gestión del pool ni las credenciales.
4. Resumen de pasos
- Descargar el driver JDBC y colocarlo en
/srv/tomee/lib/
. - Editar
/srv/tomee/conf/system.properties
y definir los DataSources. - Reiniciar TomEE para que cargue la nueva configuración.
- La aplicación solo necesita referenciar el nombre JNDI del DataSource.
Este enfoque centraliza la configuración de la base de datos, permite múltiples DataSources y asegura que todas las aplicaciones compartan un pool de conexiones gestionado profesionalmente.
Comentarios
Publicar un comentario