Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   threads en dbExpress (https://www.clubdelphi.com/foros/showthread.php?t=71365)

pborges36 15-12-2010 16:21:12

threads en dbExpress
 
Buenas a Todos. Estoy haciendo una aplicacion en delphi 2010, mysql 5. Uso los componentes TSQLConnection y TSQLQuery de la paleta dbExpress para conectarme a la base de datos.
Recien descubro que por cada TSQLQuery que se active se crea un thread en el servidor mysql. Por esta razon al tener la aplicacion funcionando solamente en 5 pc empiezan a saltar los errores de mysql:

Código:

Too many connections.
Se podra optimizar esto de alguna manera?
Muchas gracias.

Neftali [Germán.Estévez] 16-12-2010 13:29:52

Para eso hay lo que se llama un ConnectionPool. Busca información.
Puedes usar treads, pero limitando el número de conexiones para que no se cren demasiadas. Hay una serie de conexiones activas que comparten los threads.

Limitas el número y los threads van esperando a que quede una conexión libre, cuando queda una libre, esta e asigna a un thread que la usa y la vuelve a liberar. De esta forma utilizas "al máximo" las conexiones disponibles, pero sin pasarte.

pborges36 17-12-2010 14:38:49

Gracias por responder Neftali.
Consegui el componente ConnectionPool, pero no consigo hacelo funcionar en D2010.

Habra una version para 2010? o habra otra solucion?.

Muchas Gracias.
Saludos.

Neftali [Germán.Estévez] 17-12-2010 16:21:36

Cita:

Empezado por pborges36 (Mensaje 385272)
Habra una version para 2010? o habra otra solucion?.

Hombre la otra opción es que lo programes tú. Puedes empezar con algo sencillo y luego ir complicándolo. La idea, tal como he dicho, no es compleja.
Se trata de tener una lista de conneciones; Unas libres y otras que se están utilizando. Cuando alguien necesita una se la asignas y la utiliza, al acabar la libera.

¿Te atreves a realizar una implementación sencilla?
Si comienzas tal vez te podamos echar un cable.

pborges36 17-12-2010 16:58:06

Holas. Mer parece una buena idea. Tendre que empezar con la implementacion, aunque no sabria ni por donde empezar.
Algun link que recomiendes leer?

Muchas Gracias Neftali.
Saludos.

Delfino 21-12-2010 16:18:47

Cita:

Empezado por pborges36 (Mensaje 385031)
Por esta razon al tener la aplicacion funcionando solamente en 5 pc empiezan a saltar los errores de mysql:

Eso te pasa por no usar Firebird :D


La franja horaria es GMT +2. Ahora son las 13:29:37.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi