¿Alguien usa el fondo común en la producción para escribir un grupo propio?
Sí, lo hago y la agrupación contiene conexiones TCP, como usted pretende. Está conectado a través de la primavera, por lo que suponiendo que entender la configuración de primavera:
<bean class="com.company.ConnectionSupplier">
<constructor-arg>
<!-- The ConnectionSupplier wraps an object pool -->
<bean class="org.apache.commons.pool.impl.GenericObjectPool">
<constructor-arg>
<!-- The ObjectPool uses a ConnectionFactory to build new connections -->
<bean class="com.company.ConnectionFactory">
<constructor-arg value="server" />
<constructor-arg value="3000" />
</bean>
</constructor-arg>
<property name="maxActive" value="20" />
<property name="testOnBorrow" value="true" />
</bean>
</constructor-arg>
</bean>
El ConnectionFactory extiende BasePoolableObjectFactory y es un pequeño envoltorio alrededor de una SocketFactory.
@ Primer comentario: El constructor ConnectionFactory toma un servidor y un puerto. En el makeObject modificado(), crea sockets que se conectan a ese servidor y puerto. Devuelve objetos de 'Conexión' que envuelven el socket creado con algunos métodos de conveniencia para comunicarse a través del socket.
La conexión se prueba utilizando una especie de 'ping' o 'eco' proporcionado por el protocolo utilizado para comunicarse a través del zócalo. Si no hubiera estado disponible, la validación/prueba de la conexión no es realmente posible, excepto preguntar al socket si se ha cerrado. En ese caso, una Conexión en el grupo se habría invalidado si arrojara una excepción y cada método que use Conexiones debería prepararse para ese tipo de falla e intentará la misma operación con otra conexión.
Esa es la primera vez que escuché que DBCP tiene fallas ... ¿tiene algo más específico? – skaffman
@skaffman - principalmente perdió conexiones sin una razón –
Esto es interesante: http://static.springsource.com/projects/tc-server/6.0/admin/radmjdbc.html ... menciona la insuficiencia de DBCP. No es de mucha ayuda, ya que es de fuente cerrada. – skaffman