Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

301
Vistas
Modificar un grupo de conexiones JNDI mediante programación

Estoy usando la biblioteca de grupo de conexiones Apache Tomcat JDBC en mi proyecto y configuré el archivo context.xml en consecuencia. La instancia de mi aplicación debe ejecutarse en varias ubicaciones, pero la carga en la aplicación será diferente, por lo que quiero modificar el tamaño maxActive y alguna otra propiedad según el tamaño del cliente en una instancia particular en tiempo de ejecución.

 <Context path="/abc" docBase="abc" debug="5" reloadable="false" crossContext="true"> <Resource name="jdbc/abc" auth="Container" type="javax.sql.DataSource" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" driverClassName="xxxxx" url="xxxxxxx" username="xxxxx" password="xxxxxx" maxActive="20" initialSize="0" ... /> </Context>
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

No hay nada especial en una fuente de datos creada a través de JNDI: si conoce su clase ( org.apache.tomcat.jdbc.pool.DataSource en su caso), puede convertir a esa clase y usar los configuradores disponibles para configurarlo:

 private void customizeDataSource(final DataSource ds) { if (ds instanceof PoolConfiguration) { final PoolConfiguration poolConfig = (PoolConfiguration) ds; poolConfig.setMaxActive(10); } }

(ver la definición de PoolConfiguration ). Las implementaciones de javax.sql.DataSource también implementan una interfaz Wrapper muy útil, que puede ser útil si su código envuelve la fuente de datos JDBC de Tomcat en otra cosa:

 private void customizeDataSource(final DataSource ds) throws SQLException { if (ds.isWrapperFor(PoolConfiguration.class)) { final PoolConfiguration poolConfig = ds.unwrap(PoolConfiguration.class); poolConfig.setMaxActive(10); } }

Sin embargo, existen algunos problemas que pueden surgir del enfoque programático anterior:

  • si tomcat-jdbc.jar con su aplicación, su código solo reconocerá los recursos JNDI configurados en su context.xml . Aquellos en GlobalNamingResources usarán la copia de org.apache.tomcat.jdbc.pool.DataSource incluido con Tomcat y no coincidirán con la condición de instanceof de.
  • si, por otro lado, no incluye tomcat-jdbc.jar en su archivo WAR, debe asegurarse de que los parámetros que establezca sean compatibles con todas las versiones de Tomcat en las que se ejecutará su aplicación.
over 4 years ago · Santiago Trujillo Denunciar

0

MySQL se conecta rápidamente, lo que hace que la agrupación de conexiones sea de uso limitado.

Por lo general, si hay un problema de rendimiento, es mejor manejarlo con otras técnicas: índices compuestos, reformulación de consultas, solución de las limitaciones de optimización de MySQL, etc.

¿Le importaría retroceder un paso y analicemos los cuellos de botella?

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda