Cycle de vie de la classe serveur

De RAD Studio
Aller à : navigation, rechercher

Remonter à Application Serveur DataSnap


Cycle de vie de la classe serveur

La métaclasse TDSServerClass a une propriété LifeCycle qui détermine les situations où de nouvelles instances de la classe des méthodes serveur sont créées, et quand des instances existantes sont réutilisées ou détruites.

Types de la propriété LifeCycle

Les options de cette propriété sont Server, Session et Invocation. En général, elles peuvent être interprétées comme suit :

  • Server : une instance est créée par serveur d'exécution (singleton).
  • Session : une instance est créée par connexion client active.
  • Invocation : une nouvelle instance est créée pour chaque invocation d'un client (sans état).

Clients REST

Pour une connexion client REST, si Session (LifeCycle) est utilisé sur la classe serveur, son comportement est identique à Invocation (LifeCycle).

Perte de connexion

Si un client perd brusquement la connexion (connexions non REST), l'événement OnDisconnect n'est pas déclenché par défaut. La raison est que le socket reste ouvert jusqu'à ce qu'une opération d'entrée/sortie soit tentée et échoue. Si la propriété LifeCycle est définie sur Session, l'instance de la classe serveur ne sera pas résolue, et seulement libérée à l'arrêt du serveur. Si la propriété LifeCycle est définie sur Invocation et que la connexion a été perdue lors d'une invocation (avant que la réponse ne soit envoyée au client), la classe serveur n'est pas détruite tant que le serveur n'est pas arrêté.

Toutefois, si votre système d'exploitation est configuré pour utiliser des paquets persistants pour toutes les connexions TCP/IP, selon sa configuration, vous pouvez contrôler ce comportement en utilisant les méthodes EnableKeepAlive et DisableKeepAlive. Pour de plus amples détails, allez à la section Surveillance et contrôle des connexions DataSnap TCP/IP - Détection des déconnexions disgracieuses.

Remarque : Pour de plus amples informations à propos de la classe serveur LifeCycle, visitez Delphi Labs pour voir le second épisode de Delphi Labs Videos par Paweł Głowacki.