Problème de connexion : le Dispatch renvoie vers un service qui n'existe pas

Le 24/03/2013 Par Thibault Goninplaniswareopx2p5dispatch

Introduction

Dans un environnement Planisware Application Server possédant plusieurs Intranet Server (en cluster), le processus Dispatch va renvoyer tout nouvel utilisateur vers l’Intranet Server (IS) le moins chargé. Il peut arriver que la redirection échoue car l’url cible n’est pas disponible (souvent une erreur 500, service indisponible). En général cela arrive lorsque les processus Intranet Server ne sont pas encore totalement démarrés. Si le problème persiste, même après le démarrage complet des IS, il faut vérifier la pertinence de l’URL renvoyée par le Dispatch.

 

Analyse de l’URL de redirection

Pour vérifier quelle est l’URL de redirection il suffit de consulter le fichier de log du processus Dispatch.

Si l’URL renvoyée fait référence à un service (nom de server + port) incohérent cela signifie que la base de données a gardé en mémoire des informations erronnées. La section suivante explique comment le fonctionnement natif des processus Planisware peut être à l’origine de cette anomalie. 

 

Principe de fonctionnement du Dispatch pour la redirection

  1. Chaque processus IS, Dispatch ou Timecard lorsqu’il est démarré va le signaler en ajoutant des informations le concernant en base de données dans les tables suivantes :
  • SERVER_URI
  • SERVER_STATUS
  • 2) Le Dispatch va lire ces informations pour savoir vers quel processus il peut rediriger les connexions utilisateurs. Il va alors envoyer une redirection vers l’un des services disponible. Dans notre exemple ce sera une URL du type "http://my_serveur:8000/BASE_DEV/OPX/my_server:8400/HOME"

    3) Lors de l’arrêt d’un processus les informations relatives à ce processus sont purgées dans les tables SERVER_URI et SERVER_STATUS.

     

    Problème en cas d’export de la base de données services démarrés

    Lorsque l’on exporte la base de données P5 lorsque les services sont démarrés, les tables 

    Pour s’en assurer il suffit d’arrêter tous les services Planisware 

     

    Solution rapide pour éviter ce problème

    Une solution rapide et efficace pour résoudre ce problème est de forcer la purge des tables SERVER_URI et SERVER_STATUS services Planisware arrêtés (Intranet Server, Dispatch et Timecard). Au redémarrage seuls les processus "vraiment" démarrés apparaitront et le Dispatch ne tentera pas de rediriger des utilisteurs vers des URL erronnés.

    Sous Oracle cette purge se traduit par les simples commandes SQL suivantes à exécuter sur le schéma de bases de données de l’application :

    <span >SQL> TRUNCATE TABLE SERVER_URI;
    SQL> TRUNCATE TABLE SERVER_STATUS;</span>
    

    Sommaire

    • fleche vers la droite Introduction
    • fleche vers la droite Analyse de l’URL de redirection
    • fleche vers la droite Principe de fonctionnement du Dispatch pour la redirection
    • fleche vers la droite Problème en cas d’export de la base de données services démarrés
    • fleche vers la droite Solution rapide pour éviter ce problème

    À voir aussi

    Tous les articles