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

Développement Web en Java Discussion :

Pb Taille de reponse très très grande


Sujet :

Développement Web en Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 62
    Points : 22
    Points
    22
    Par défaut Pb Taille de reponse très très grande
    Bonjour tout le monde,

    Je développe une application java réseau :
    voilà le code que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    public static String getResponseString query) {
    	String response = "";
    	URL fileURL;
    	try {
    		fileURL = new URL(query);
     
        URLConnection myConnection = fileURL.openConnection();
        BufferedReader in = new BufferedReader(
                                new InputStreamReader(
                                myConnection.getInputStream()));
     
        String inputLine;
     
        while ((inputLine = in.readLine()) != null) {
        	response += inputLine;
        }
        in.close();
    	} catch (IOException e) {
    		response += e.toString();
    	} 
     
        return response;
    }
    En fait le code marche bien lorsque la réponse n'est pas de grande taille, mais dès que la taille soit grande j'obtien une exception.
    Vous remarquez tout de suite qu'il n'y a pas de gestion de timeOut ni de taille

    Ma Question est : comment gérer ces deux ressources (timeOut vs Taille)?

    Merci d'avance.

  2. #2
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 62
    Points : 22
    Points
    22
    Par défaut
    Je me demande est ce que c'est ici qu'on ouvre les discussions sur les problèmes Réseaux ??

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 62
    Points : 22
    Points
    22
    Par défaut
    Je ne sais pas est ce que ma question était claire mais je me pose la question est ce que le problème n'est pas dû au fait que le timeout est déclenché car le traitement prend du temps à savoir que je ne l'ai pas modifié car je ne sais pas comment.

    Donc voilà les trois causes possibles :

    1- Le résultat est plus grand et du coup il ne peut pas être enregistré dans une variable String ( donc ça dépend de la taille maxi d'une variable string);

    2- Le temps de réponse déclenche le timeout du URLConnection;

    3- outputStream envoyé sur le serveur est plus grand que la taille maximale qui peut être transmise entre le serveur et le client via le Apache 2.2 que j'utilise .

    Des idées je serai preneur, je souffre avec ce problème

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Le timeout est géré au niveau du serveur d'application et/ou du serveur HTTP.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 62
    Points : 22
    Points
    22
    Par défaut
    Effectivement je l'ai changé dans les fichier de config, mais comment je peux indiquer à mon reader de ne pas lire que s'il y a de réponse ?

  6. #6
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Citation Envoyé par kazabliz Voir le message
    Effectivement je l'ai changé dans les fichier de config, mais comment je peux indiquer à mon reader de ne pas lire que s'il y a de réponse ?
    C'est le serpent qui se mort la queue.... pour savoir si tu as des données, il faut lire. Ton reader doit être en attente de lecture, tu n'as pas le choix. A toi de gérer un timeout sur ton reader. Mais il doit être assez élevé pour attendre la réponse du serveur, mais pas trop pour ne pas attendre éternellement une réponse qui n'arrivera jamais...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 62
    Points : 22
    Points
    22
    Par défaut
    Merci pour tes réponses, J'ai cru que je peux gérer la vérification sans passer par la gestion des Threads, alors je vais passer par encapsulation de ma class par un thread et je verrai si ça marchera.

  8. #8
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Ca n'a rien a voir avec l'encapsulation dans un Thread
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 62
    Points : 22
    Points
    22
    Par défaut
    Peut être je me trompe, en fait comme je ne sais pas quand le inputStream contient qlq chose alors je me suis dit pourquoi pas tester avec un thread qui me notifie dès que qlq chose se produira, et d'ailleurs ce que je ne sais pas faire pour le moment.

    J'ai su ou vient l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InputStream iStream = myConnection.getInputStream();
    en fait lorsque je fais getInputStream() et que le traitement distant prend du temps ça déclenche une IOExeption

    Ma question est sera-t-il possible de tester est ce que le inputstream est vide ou non avant de faire un get sans que je fait sleep car je vais tester au fur et à mesure
    Merci.

Discussions similaires

  1. BDD sur réseau très très très lent...
    Par ericain dans le forum Access
    Réponses: 12
    Dernier message: 20/02/2015, 17h17
  2. newSchema(url) exécution très très très lente
    Par schum-hacker dans le forum Général Java
    Réponses: 6
    Dernier message: 21/01/2013, 09h32
  3. Logiciel intranet très très très lent
    Par openeyes dans le forum ALM
    Réponses: 7
    Dernier message: 15/02/2011, 15h16
  4. Améliorer les performances - très (très) (très) grands datasets
    Par debdev dans le forum Administration et Installation
    Réponses: 6
    Dernier message: 08/01/2010, 16h46
  5. Démarrage trés, trés, trés difficile
    Par Cazaux-Moutou-Philippe dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 29/06/2008, 10h45

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