Pour éviter la perte de session, 4D surveille l’état de sommeil des applications 4D distantes.
Lorsqu’un utilisateur est connecté depuis une application 4D distante à un 4D Server et que son ordinateur se met en mode veille, l’information est envoyée au 4D Server. Au moment où l’ordinateur de l’utilisateur se réveille, l’application 4D distante récupère alors son contexte d’exécution.
Vérification de l’état des applications 4D distantes
L’état de veille d’une application 4D distante est affiché dans la fenêtre Administration du serveur, dans Utilisateurs > Activité :
Une autre façon de détecter les applications 4D distantes en sommeil est d’utiliser la commande Get process activity commande :
$sleepingRemotes:=Get process activity (Sessions only).sessions.query("state = :1" ; "sleeping")
Comment cela fonctionne-t-il ?
En mode sommeil, toutes les ressources consommées par l’application 4D distante lui sont encore allouées, afin de retrouver son état de fonctionnement au réveil. Les processus, licences, transactions ouvertes, enregistrements verrouillés, etc., ne sont libérés que lorsque la session du 4D distant se termine.
Pour éviter que les sessions ne restent trop longtemps en mode sommeil, 4D Server ferme automatiquement toutes les sessions 4D distantes qui sont restées en sommeil pendant plus de 48 heures.
Si vous souhaitez gérer ce délai de manière plus précise, en fonction de l’utilisation de votre client, vous pouvez utiliser la commande SET DATABASE PARAMETER avec le sélecteur Remote connection sleep timeout. Notez que le délai d’attente doit être défini en secondes et que la valeur n’est pas stockée, vous devez donc définir votre propre délai d’attente au redémarrage. Il peut même être défini indifféremment sur le 4D distant et le 4D Server, puisque la valeur ne prend effet que du côté du 4D Server pour toutes les applications 4D distantes.
Les contrôles de l’état de veille des applications 4D distantes sont effectués toutes les 5 minutes sur le serveur 4D.
Exemple
defaultTimeout:=Get database parameter(Remote connection sleep timeout) // 172800 seconds by default
)
SET DATABASE PARAMETER (Remote connection sleep timeout; 7200 // Set to 2 hours
Remarque : la gestion du mode sommeil n’est pas disponible avec la couche réseau héritée.