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

Java EE Discussion :

Problèmes de connexion en cas d'appels concurrents


Sujet :

Java EE

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 30
    Points : 23
    Points
    23
    Par défaut Problèmes de connexion en cas d'appels concurrents
    bonjour a tous,
    svp,est-ce que vous pouvez m'aider a regler ce probleme:
    quand je lance pour clients simultanéments,des fois ça marche et des fois j'ai ce probleme
    Exception in thread "main" org.jboss.remoting.CannotConnectException: Can not get connection to server. Problem establishing socket connection for InvokerLocator [socket://127.0.0.1:3873/]
    at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:532)
    at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:122)
    at org.jboss.remoting.Client.invoke(Client.java:1634)
    at org.jboss.remoting.Client.invoke(Client.java:548)
    at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:62)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:67)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:53)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:74)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:107)
    at $Proxy0.add(Unknown Source)
    at client.test.ejb.TestMaCalculetteMain.main(TestMaCalculetteMain.java:12)
    Caused by: java.net.BindException: Address already in use: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(Unknown Source)
    at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at org.jboss.remoting.transport.socket.SocketClientInvoker.createSocket(SocketClientInvoker.java:187)
    at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.getConnection(MicroSocketClientInvoker.java:815)
    at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:525)
    at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:122)
    at org.jboss.remoting.Client.invoke(Client.java:1634)
    at org.jboss.remoting.Client.invoke(Client.java:548)
    at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:62)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:67)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:53)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:74)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
    at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:107)
    at $Proxy0.add(Unknown Source)
    at client.test.ejb.TestMaCalculetteMain.main(TestMaCalculetteMain.java:12)
    at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:74)
    ... 10 more
    j'ai trouvé d'où viens le probleme mais je ne sais pas encore comment le regler:
    voila,moi je lance au niveau des client une boucle for(1=0;i<10000;i++) pour demander simplement au serveur de faire l'addition de deux nombres.
    donc pour chaque aperation,on lance une socket(j'ai verifié avec la commande netstat -aon)
    donc je cherche maintenant un moyen de ne creer qu'une seule socket et la fermer à la fin de la boucle
    j'espere que j'ai etait tres claire sinon je peux detailler encore un peu plus.

    Merci

  2. #2
    Expert confirmé
    Avatar de X-plode
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2005
    Messages
    682
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2005
    Messages : 682
    Points : 4 883
    Points
    4 883
    Par défaut
    Bonjour,

    Si tu déclare un boolean et tu fais ton opération dans une condition genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Socket S;
    boolean check = true;
     
    ...
    if(check){
       S = new Socket();
       for(){
       }
     
       check = false
     
    }

    Est ce que ceci résoudrait ton soucis ?

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 30
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par X-plode Voir le message
    Bonjour,

    Si tu déclare un boolean et tu fais ton opération dans une condition genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Socket S;
    boolean check = true;
     
    ...
    if(check){
       S = new Socket();
       for(){
       }
     
       check = false
     
    }

    Est ce que ceci résoudrait ton soucis ?
    malheureusement non,ca ne regle toujours pas le probleme ,mais peut etre c'est moi qui a mal utiliser les sockets,
    voila ce que j'ai fait:
    import java.net.Socket;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;


    public class TestMaCalculetteMain {
    public static void main(String [] args) throws NamingException {
    try{
    Socket S;
    boolean check = true;
    final Context context = getInitialContext();

    MaCalculette calculator = (MaCalculette) context.lookup("MaCalculetteBean");

    if(check){
    S = new Socket();

    for(int i=0;i<1000;i++)System.out.println(calculator.addition(i,i));
    check = false;
    }
    }catch (Exception ex) {
    ex.printStackTrace();
    }
    }
    private static Context getInitialContext() throws NamingException {
    return new InitialContext();
    }
    }
    ça s'execute parfaitement mais je ne sais pas si c'est ça se que je devrai faire!!

    merci comme meme pour votre suggestion et je reste ouvert a d'autres propositions

Discussions similaires

  1. [Première installation] Problème de connexion
    Par sekiryou dans le forum Installation
    Réponses: 2
    Dernier message: 02/03/2004, 19h18
  2. [ Oracle 9ias / 10g] problème de connexion
    Par Boosters dans le forum JDeveloper
    Réponses: 2
    Dernier message: 20/01/2004, 17h23
  3. Problème de connexion au serveur MYSQL
    Par ETOKA dans le forum Outils
    Réponses: 2
    Dernier message: 27/11/2003, 09h28
  4. Réponses: 11
    Dernier message: 13/10/2003, 14h48
  5. problème de connexion 2 PC
    Par guitalca dans le forum Développement
    Réponses: 3
    Dernier message: 22/09/2003, 14h04

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