IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

CORBA Discussion :

timeout appel depuis Java vers serveur avec omniORB


Sujet :

CORBA

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut timeout appel depuis Java vers serveur avec omniORB
    Bonjour,

    je dispose d'un serveur Corba développée en C++ avec omniORB. De l'autre, le client est développée en Java.

    Mon problème est que lorsque le serveur est déconnecté du réseau, le timeout d'un appel met très longtemps à intervenir (de l'ordre de 15mn). Je cherche donc à modifier la valeur pour revenir à quelque chose de plus faible (de l'ordre de 1mn).
    Dans le code Java, j'ai les appels suivants :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    props.setProperty("org.omg.CORBA.ORBtimeOut", "xxx" ); 			 
    props.setProperty("org.omg.CORBA.ORBtcpTimeOut", "xxx" );
    J'ai également modifié la config omniOrb est définissant serverCallTimeOutPeriod et clientCallTimeOutPeriod à la fois sur la machine du client et la machine du serveur.

    Rien de mes modifications ne semblent avoir un impact.

    Ai-je raté quelque chose ?

  2. #2
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2006
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 219
    Points : 302
    Points
    302
    Par défaut
    Bonjour,

    les ORBs se basent souvent sur l'état du socket TCP pour superviser la connexion du client au serveur. Or il arrive que des déconnections réseau ne soient pas détectées tout-de-suite par l'OS. Et donc le socket trompe l'ORB en lui indiquant que la connexion est toujours OK.
    Ces cas de déconnections finissent par être détectés par l'OS après par un mécanisme TCP assez long (à base de messages de contrôles ré-émis plusieurs fois à un intervalle assez long) qui par défaut prend effectivement de l'ordre de 15 min.

    Il est possible de modifier la configuration de l'OS (côté client) pour réduire ce temps.
    Sous Linux, cela se fait en jouant sur les paramètres kernel suivants:
    • net.ipv4.tcp_syn_retries
    • net.ipv4.tcp_fin_timetout
    • net.ipv4.tcp_retries2

    Tu peux voir leur valeur avec la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sysctl net.ipv4.tcp_retries2
    et les modifier avec la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sysctl -w net.ipv4.tcp_retries2=xxx
    Pour un temps de détection de l'ordre de la minute, diminuer la valeur de tcp_retries2 devrait suffire.

    Pour plus d'info:
    http://www.linux-france.org/prj/inet...l.obscure.html

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/10/2008, 16h49
  2. Réponses: 5
    Dernier message: 14/05/2008, 18h14
  3. Java vers serveur Php/Mysql, quelle solution ?
    Par Mordoum dans le forum Général Java
    Réponses: 7
    Dernier message: 22/01/2008, 11h04
  4. Propagation de transactions depuis Java vers Visual Basic
    Par Kirua12 dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 24/03/2007, 00h16
  5. Réponses: 3
    Dernier message: 13/07/2006, 10h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo