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

Langage Java Discussion :

Test multithread envoi sur un port


Sujet :

Langage Java

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2012
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2012
    Messages : 149
    Points : 112
    Points
    112
    Par défaut Test multithread envoi sur un port
    Bonsoir à tous,

    voici mon soucis :

    Je créé 10 thread qui (chacun) instancie une connexion à une DB (Cassandra) et y insert une ligne (id,nom,prénom,..) puis ferme la connexion.

    Cela fonctionne mais le problème est qu'à un moment donné, un des 10 thread génère une exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed [/monIP:port] Cannot connect
    Disant comme quoi il ne parvient pas à ce connecter.

    J'ai pourtant mis un Thread.sleep(100) juste avant fermer la connexion.

    PS: J'utilise cela pour faire des tests (test si les ports s'ouvrent et se ferment à temps pour autant d'instance qu'il y ait / qu'il n'ouvre pas tous les ports et ne sache plus suivre,...) sur un serveur possèdant la DB

  2. #2
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 320
    Points : 3 741
    Points
    3 741
    Billets dans le blog
    12
    Par défaut
    J'espère que tu ne crée pas 10 instances de SimpleClient, généralement ce type de base NoSQL possède une API "cluster" qui est threadsafe et dont le constructeur accepte un pool de connexion, donc inutile de créer explicitement 10 instances de connexion vers la base dans des threads séparés. Aussi j'ai pris la peine de vérifier : http://www.datastax.com/drivers/java...e/Cluster.html
    Enfin, je ne pense pas que ce soit une bonne idée d'utiliser un sleep de 100 millisecondes pour attendre la fermeture des connexions, un simple shutdown() sur l'instance de cluster devrait suffire.
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD12] Faire un test de stabilité sur mon port serie
    Par karim15 dans le forum WinDev
    Réponses: 2
    Dernier message: 12/11/2012, 08h43
  2. Envoie sur un port Serie
    Par Kirax dans le forum C++
    Réponses: 0
    Dernier message: 05/04/2012, 23h42
  3. Réponses: 4
    Dernier message: 09/01/2007, 15h20
  4. [vb6] Evénement de réception/envoi sur port COM
    Par Original Prankster dans le forum VB 6 et antérieur
    Réponses: 31
    Dernier message: 13/12/2006, 00h05
  5. test d'envoi sur le port com
    Par sylviek dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 15/10/2006, 13h08

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