Hola a todos, este finde me he propuesto mirar de como trabajar / usar un pool de conexiones a la base de datos. He usado la class BasicDataSource para ello y me encuentro que no termina de hacer caso bien bien al metodo setInitialSize https://commons.apache.org/proper/commons-dbcp/api-1.4/org/apache/commons/dbcp/BasicDataSource.html#setInitialSize(int)
Me explico, el "programa" realiza la siguiente accion:
- Pide 2 conexiones a la pool
- Espera 10 segundos
- Ejecuta 2 insert (1 con autocommit, el otro no)
- Espera 10 segundos
- Hace un commit para el que no tiene autocommit.
- Cierra conexiones
Esto lo hago asi, para que me de tiempo de sobras en el phpmyadmin a ver las conexiones establecidas con la base de datos, y estos son los resultados obtenidos (para el usuario desde la app)
- Si le pongo 2 conexiones, en phpmyadmin veo 2 conexiones establecidas
- Si le pongo 5 conexiones, en phpmyadmin veo 5 conexiones establecidas
- Si le pongo 10 conexiones, en phpmyadmin veo 8! conexiones establecidas
- Si le pongo >10 conexiones, en phpmyadmin veo 8! conexiones establecidas
Como puede ser esto, en teoria el setInitialSize, tal y como indica la documentacion establece las conexiones (siempre que ese metodo se llame antes de realizar el primer getConnection). Os dejo el código que tengo hecho.