Pregunta

Estoy buscando para detectar la pérdida de conexión local. ¿Hay un medio para hacer eso, al igual que con los eventos en los componentes CoreLabs?

Gracias

EDIT: En este momento, voy a tratar de ser más específicos: Actualmente estoy diseñando un prototipo utilizando DataSnap 2009. Así que tengo un cliente ligero, una aplicación de servidor sin estado y un servidor de base de datos.

Lo que me gustaría ser capaz de hacer es detectar y manejar la pérdida de conexión (conexión a Internet) entre el cliente y el servidor de aplicaciones para manejar de manera adecuada, es decir: mostrar un mensaje de error informativo para el usuario o para detectar un cierre de servidor de silencio redirigir en otro servidor de aplicación.

En 2 niveles solía manejar eso con componentes ODAC, el TOraSession tiene algunos eventos para manejar este problema.

¿Fue útil?

Solución

Normalmente no hay ningún evento disparado cuando se rompe una conexión, a menos que una declaración se disparó contra la base de datos. Esto se debe a que no hay manera de saber una pérdida de conexión a menos que exista algún tipo de IS-vivos ping pasando.

Muchos marcos comprobar si una conexión sigue siendo válida al hacer una consulta muy pequeño en el servidor. Podría obtener el tiempo de un servidor. Especialmente en un entorno de conexión de la puesta en común.

Se puede implementar una conexión función de comprobación de la aplicación de algunos de los eventos de base de datos (BeforeExecute?). O hacer un temporizador que comprueba cada 10 segundos.

Otros consejos

generará un subproceso en el cliente que envía periódicamente algunos RPC 'ping' o 'Heartbeat' comandos al servidor.

  • Si esto falla, el cliente sabe que algo le pasó a la conexión

  • Si el servidor no escucha al cliente más de un período de tiempo (por ejemplo, dos veces el intervalo de latidos del corazón), se puede concluir que el cliente está desconectado, sin embargo, esto requiere un servidor de estado (y su diseño es sin estado por lo que requeriría de procesamiento de eventos en un sistema secundario, que podría ser alimentado a través de una cola de mensajes)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top