Dans des conditions normales, un client qui envoie un message SC_CALLBACK_REG reçoit une réponse précisant si l'enregistrement a réussi ou a échoué.
Toutefois, le serveur peut être confronté à une condition d'erreur pendant l'enregistrement, ce qui l'empêche de transmettre un message SC_REPLY au client. L'enregistrement a pu réussir avant l'erreur, échouer ou ne pas avoir été traité.
Étant donné que le serveur doit fonctionner en tant que serveur de basculement ou de haute disponibilité dans le cluster, cette condition d'erreur ne signifie pas que le service est interrompu. De fait, le serveur peut rapidement commencer à envoyer des événements au client nouvellement enregistré.
Pour pallier ces conditions, votre client doit effectuer les opérations suivantes :
Imposer un délai d'expiration au niveau de l'application pour les connexions d'enregistrement en attente d'un message SC_REPLY, délai après lequel il devra réessayer de s'enregistrer.
Commencer à écouter son adresse IP de rappel et son numéro de port en vue de recevoir des notifications d'événement avant d'être enregistré pour la notification de rappel d'événement. Il doit attendre un message de confirmation d'enregistrement et des notifications d'événements en parallèle. S'il commence à recevoir des notifications d'événements avant de recevoir un message de confirmation, il doit fermer la connexion d'enregistrement.