Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

305
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda