POOL CONEXIONES

como mi listener actual en java maneja una conexión y tenido problemas de inconsistencias me puse a crear un pool de conexiones pero
nose si como lo configure es que no obtengo el rendimiento que esperaba

mi archivo de configuración estas asi:

minsize=50
maxsize=80
steep=20
 

Como los Daos son los que accede a la base de datos quedaria mas o menos asi:
 

la idea es que no tengo un rendimieto optimo aun no si necesito meter mas conexiones son mas o menos 1500 conexiones concurrentes
o lo otro es que mi pool sea algo muy basico y necesite programar algo mas elaborado

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de neko069

DRY

Porqué no usar un C3P0 o un DBCP que ya te dan ésa funcionalidad?
En fin... si insistes en hacer tu propio pool, básate de acá.

si estaba jugando

si queria hacer un pool pequeñito pero totalmente funcional, pero leyendo sobre pool ya mejor elaborados
me intereso bonecp

con bonecp

con bonecp me fue super bien y el sistema es mas estable

 

esta es la conexion que estoy usando en mi socket java y por ahora bien, si alguien ha usado este pool de conexion y conece un mejor afinamiento para el seria cool como hacerlo.

Imagen de ezamudio

DRY, NIH...

eso te iba a decir, para qué implementas el pool tú mismo? mejor usa boneCP o apache DBCP o c3p0. Incluso creo que tu clase esta que pusiste que usa BoneCP sale sobrando, mejor usa BoneCP directamente (se ve como un simple DataSource)

que quisistes decir con

mejor usa BoneCP directamente (se ve como un simple DataSource)

......

si obviamos la clase que usa bonecp y lo use directamente ??? donde le indico los parametros de conexion
como quedaria el dao si lo usara directamente
 

Imagen de ezamudio

cuando lo creas

Cuando creas el pool de BoneCP le pones los parámetros que necesites, pero lo pasas a los DAOs como un simple DataSource. De esa forma no hay acoplamiento; si luego cambias de pool de conexiones o decides usar un DataSource (porque lo pones en un contenedor que sí maneja un pool pero te lo publica como un DataSource y ya no sabes ni te importa qué cosa es realmente), ya los DAOs siguen funcionando igual.

La cosa es que BoneCP, DBCP c3p0 etc todos te dan un DataSource que es el que maneja el pool; le pasas los parámetros que quieres y un montón de cosas pero para usarlo es bien simple porque es igual que con cualquier otro datasource: le pides una conexión nueva, la usas y al final la cierras (pero por ser pool, realmente no se cierra la conexión sino que al darle   se devuelve al pool).

ok

puedo tomar tranquilamente el que trae la pagina por defecto?
por que el que yo arme la conexion la obtengo con getConnection()
syncronizada es necesario sincronizar este pool asi como lo hago???
el ya por defecto es un treadsafe??

public synchronized static Connection GetConnection()
{
Connection connection = null;

try
{
connection = connectionPool.getConnection();
}
catch (Exception ex)
{
//logger.error(ex);
}

return connection;
}

Imagen de ezamudio

no hagas un pool

No hagas un pool tú. Crea el datasource de BoneCP o lo que sea y pásaselo a todos los DAOs. En esta década todo mundo usa Spring o Weld o Guice o alguna herramienta para inyectar dependencias en componentes, pero si lo quieres hacer a mano pues primero creas tu datasource que es realmente un pool de conexiones y luego cuando creas tus DAOs les pasas ese datasource.

BoneCP ofrece una clase BoneCPConfig que puede leer un archivo de configuración XML o properties para crear el datasource con lo que le hayas configurado en ese archivo. Eso es lo más recomendable porque no dejas nada en código duro; si luego necesitas tener más conexiones, etc le mueves a un archivo de texto y reinicias.

Imagen de neko069

Changos

No sé porqué no puedo acceder a la página de BoneCP, pero si le pones en google "bonecp config example" las primeras ligas son ejemplos.
Elegiste un determinado pool, consejo, tómate 15 minutos para leer la documentación.

mis daos

en mis dao yo obtengo la conexion asi:
 

lo te no te enciendo es que me dices que cree el datasource de Bonecp acaso este no es valido???