A partir de la PTF05 d’Adélia Studio 13, est inclus un gestionnaire de session compatible avec la répartition de charge, c’est-à-dire capable de gérer des sessions et des processus s’exécutant sur des serveurs différents (nœuds wagon).

Chaque nœud Wagon s’exécute sous une instance différente du container Web. Chaque instance doit avoir un identifiant de nœud unique (WagonNodeId). Cet identifiant est calculé à la première connexion au container Web, mais il est possible de lui spécifier une valeur en rajoutant le paramètre « -DWagonNodeId=id_du_noeud » aux paramètres de la JVM. Chaque nœud doit avoir un identifiant unique.

Le gestionnaire de sessions s’appuie sur un broker JMS pour permettre la communication entre les nœuds applicatifs. Le choix de l’implémentation est laissé au client, la solution a été testée avec Apache ActiveMQ (5.13) et Joram (5.12), mais devrait fonctionner avec tout broker compatible JMS 1.1 ou >.

Le gestionnaire de session s’appuie sur un topic unique (WAGON.EVENTS) et ne nécessite pas de persistance.

Attention, le broker peut devenir un « point unique de défaillance ». Il est généralement possible de configurer un cluster à ce niveau, la configuration du broker pour assurer la haute disponibilité et la reprise sur défaillance n’est pas le sujet de ce document.

Répartiteur de charge

Attention dans l'intégration avec un load balancer, la répartition doit se faire sur la valeur du cookie WagonNodeId.

Les headers de requête "Wagon-Node-Id", ou le paramètre qui peut apparaitre dans certaines requêtes sont réservés au mécanisme de prise de contrôle à distances et ne designent pas le noeud de la session mais celui de la session sous contrôle dans le cas d'une prise en main par un administrateur, et sont utilisés par un proxy interne réservé à cet usage. De même, l'identifiant de session (header Wagon-Session-Id) n'est pas unique que par rapport à son noeud d'origine.

  • Aucune étiquette