Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Providers (https://www.clubdelphi.com/foros/forumdisplay.php?f=10)
-   -   Datasnap no responde (https://www.clubdelphi.com/foros/showthread.php?t=94483)

comba 29-02-2020 07:07:07

Datasnap no responde
 
Buenas a todos

Estoy haciendo una apliación datasnap y utilizo delphi 10.3 + firedac + Mariadb como bd, en el servidor de aplicaciones tengo un W2008 con 24GB de ram y 12 cpu, porque la intención es que tenga unos 200 clientes conectados.

Todo funciona bien hasta que de repente la aplicación que se esta ejecutando en el servidor de aplicaciones no responde. Alguien me podría orientar que soluciones podría buscar para que esto no ocurra, o saber porque ocurre.

¿Que capacidad de conexiones puede tener una apliación de este tipo?

Gracias.

Casimiro Notevi 29-02-2020 12:09:33

Con la información que das, es absolutamente imposible saber qué ocurre.

comba 29-02-2020 12:53:48

Lo primero gracias por contestar.
Lo segundo, que información necesitas y te la digo


Además ten en cuenta que como muchos soy autodidacta y este proyecto de datasnap lo he ido haciendo gracias a videos que he visto por youtube.

Casimiro Notevi 29-02-2020 22:08:09

A ver si te sirve este tutorial.
Y estos ejemplos.

comba 02-03-2020 09:03:02

gracias y lo miro.

gatosoft 02-03-2020 20:59:54

Pues como dice casimiro, es imposible dar con el problema con información tan genérica ("la aplicaciòn no responde").

El problema podria ser cualquier cosa... un error de lógica(como un bucle infinito), un error de conexión, un error no atrapado que hace que el servidor no pueda retornar una respuesta... en fin.

Podrias decirnos ¿Falla siempre?, ¿falla al conectar?, se conecta pero falla en la ejecución de un método. podrias indicarnos cuales han sido las pruebas que has hecho para descartar errores. ¿Has hecho depuración de codigo?, ¿has puesto un log para revisar los puntos por los que entra a ejecutar?, ¿el servidor datasnap responde (un ping o similar)?

comba 02-03-2020 22:43:46

Hola gatosoft


Gracias por contestar.



Te comento que la aplicación funciona bien y cuando lleva mas o menos 20 clientes que sean conectado deja de funcionar, no hay una hora concreta pero cada 5 0 6 horas la aplicación se queda colgada y no responde. Entonces me toca cerrar el proceso y volver a ejecutarlo.


Una cosa que quizas haya pasado por alto es que antes todos los componentes que tenía eran dbx y los he pasado ha firedac.


Lo que me comentabas de depurar o hacer un log, pues la verdad lo tengo que buscar ya que nunca lo he utilizado.


De todas formas sigo buscando una solución.

gatosoft 02-03-2020 23:03:23

Ok, hablando de Firedac, es posible que debas revisar el manejo del Pool de conexiones ... No estoy seguro si tenga que ver con eso, pero de paso revisas el concepto para optimizar la gestión de conexiones a la BD...

La idea del pool es mas o menos la reutilizaciòn de conexiones y liberaciòn de conexiones ociosas... es posible que despues de un tiempo, la cantidad de conexiones abiertas a la BD esté causando problemas.

El debug, lo recomendaba por si el error sucedia siempre y era cuestion de hacer un seguimiento al codigo para saber donde se quedaba...

El log, puede ser sencillamente un archivo texto que vaya guardando hitos globales por donde va pasando y lo que va ejecutando.... es temporal, claro la idea seria intentar ver si hay un punto especial en el que se queda el sistema... es posible que ingrese, intente una conexión y consulta a la DB y se quede pegado en ese punto y no alcance a retornar nada... (eso depende de tu coidgo)...

Puedes ir poniendo mensajes de forma incremenatl hsta que encuentres el punto (es prueba y error)

es una sugerencia, porque como dices.. hay que esperar un parde horas para que se replique el error.

Se me ocurre eso...

comba 03-03-2020 17:36:45

Hola gatosoft


De momento ya he podido averiguar esto.
Exception: [FireDAC][Phys][MySQL] Lost connection to MySQL server during query.


Lo primero que voy hacer es subir el ReadTimeout a 3 segundos ya que lo tenía a 0 y probar, pero de todas formas seguiré buscando alguna solución.


Gracias.


La franja horaria es GMT +2. Ahora son las 08:24:26.

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