sql >> Base de Datos >  >> RDS >> Mysql

Problema de tiempo de espera de conexión de Basicdatasource (usando mysql)

Cosas que puedes probar:

  1. setMaxWait(-1) en el BasicDataSource. Eso le dice que espere indefinidamente por una conexión.

  2. Compruebe que el wait_timeout en su servidor MySQL está configurado en el valor predeterminado 8h.

  3. Establecer ?autoReconnect=true en su URL de JDBC

  4. setTestOnBorrow(true) en el BasicDataSource. Esto evitará que entregue conexiones obsoletas, pero agregará una sobrecarga a su aplicación (aunque si ya tiene consultas únicas tan largas, probablemente ni siquiera notará esa parte).

En general, me parece una mala idea seguir reutilizando una conexión. Para mí, el punto de tener una piscina es que no tengo que hacer eso.

¿Tus consultas son transaccionales? ¿Alguna consulta realmente larga está bloqueando una tabla principal?