Hola a todos, hace unos días se me presento un problema y la causa me condujo a que el pool de conexiones estaba configurado de manera irregular, pero dirán ustedes un pool de conexiones tiene muchas formas de configurarse y no existe un estándar y están en todo lo correcto, sin embargo voy a colocar una forma que puede servir para cuando tengan problemas de congestión en las conexiones a la base de datos por medio de un tomcat. Antes de comenzar les dejo un link que les va a ayudar mucho a tener las propiedades que más se acomoden a cada necesidad:
http://people.apache.org/~fhanik/tomcat/jdbc-pool.html
En ese link encontraran todas las propiedades que tiene el pool de conexiones de Apache Tomcat, ahora si el ejemplo que coloco a continuación esta diseñado en un bean debido a que últimamente trabajo con Spring Framework, pero lo más importante es visualizar las propiedades que utilice:
<bean id="connectionPooledDataSource" class="org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS">
<property name="driver" value="org.postgresql.Driver"/>
<property name="url" value="jdbc:postgresql://${database.host}:${database.port}/${database.name}?autoReconnect=true"/>
<property name="user" value="database.user"/>
<property name="password" value="database.password"/>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.datasources.SharedPoolDataSource" destroy-method="close">
<property name="connectionPoolDataSource" ref="connectionPooledDataSource"/>
<property name="maxActive" value="15"/>
<property name="maxWait" value="3000"/>
<property name="maxIdle" value="7"/>
<property name="testOnBorrow" value="true"/>
<property name="validationQuery" value="SELECT 1"/>
</bean>
Si de casualidad usa es MsSQL server entonces se coloca el autoreconnect de la siguiente forma:
<property name="url" value="jdbc:jtds:sqlserver://${database.host}:${database.port}/${database.name};autoReconnect=true"/>
Como dije anteriormente, este es solo un ejemplo que pueda servirles más no es la única forma de configurar un pool ya que por eso coloque el link del tomcat donde se menciona todas las propiedades que se pueden usar.
Espero que les haya servido y hasta una próxima oportunidad.
http://people.apache.org/~fhanik/tomcat/jdbc-pool.html
En ese link encontraran todas las propiedades que tiene el pool de conexiones de Apache Tomcat, ahora si el ejemplo que coloco a continuación esta diseñado en un bean debido a que últimamente trabajo con Spring Framework, pero lo más importante es visualizar las propiedades que utilice:
<bean id="connectionPooledDataSource" class="org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS">
<property name="driver" value="org.postgresql.Driver"/>
<property name="url" value="jdbc:postgresql://${database.host}:${database.port}/${database.name}?autoReconnect=true"/>
<property name="user" value="database.user"/>
<property name="password" value="database.password"/>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.datasources.SharedPoolDataSource" destroy-method="close">
<property name="connectionPoolDataSource" ref="connectionPooledDataSource"/>
<property name="maxActive" value="15"/>
<property name="maxWait" value="3000"/>
<property name="maxIdle" value="7"/>
<property name="testOnBorrow" value="true"/>
<property name="validationQuery" value="SELECT 1"/>
</bean>
Si de casualidad usa es MsSQL server entonces se coloca el autoreconnect de la siguiente forma:
<property name="url" value="jdbc:jtds:sqlserver://${database.host}:${database.port}/${database.name};autoReconnect=true"/>
Como dije anteriormente, este es solo un ejemplo que pueda servirles más no es la única forma de configurar un pool ya que por eso coloque el link del tomcat donde se menciona todas las propiedades que se pueden usar.
Espero que les haya servido y hasta una próxima oportunidad.
ola el problema que te dio cual era por que a mi me da error a la hora de desplegarlo en centos como jar
ResponderEliminarel error que me da es 12:21:07.965 [ERROR] [ main] [ ConnectionPool:181] - Unable to create initial connections of pool.
org.postgresql.util.PSQLException: A connection could not be made using the requested protocol null.
Hola, el problema era referente a conexiones que no se cerraban...por el error que mencionas es porque la configuración que tienen en el Postgres esta mal.
Eliminar