Accueil > Forum > > > > Servlet rapide en local mais très lent à distance
Servlet rapide en local mais très lent à distance
dimanche 29 juin 2008 à 21:15:32 |
Servlet rapide en local mais très lent à distance

thedestiny
|
Bonjour, Cela fait plusieurs jous que je planche sur le problème et je coince un peu donc je viens soliciter votre aide. Je développe une application client (J2SE pour le riche, GWT pour le light) qui doit récupérer des informations continue au sein d'une base de données MySQL en interrogeant une servlet (requête HTTP classique) qui se chargera de récupérer les informations de la base, de les mettre en forme puis de générer la réponse sous la forme d'un fichier XML qui sera parsé par les différents clients. Ca reste une architecture 3 tiers relativement classique. Mon problème, c'est qu'en local, l'envoi d'une requête + traitement prend entre 60 et 200ms selon le volume d'informations. Mais après quelques tests, à distance ça se gatte car on ne descend pas sous la barre des 9000ms, comme-ci les clients devaient impérativement attendre 9 secondes avant de continuer l'execution. J'ai essayé divers solutions sans succès: ajout du header Connection: close, au niveau du servlet, passage de Glassfish à Tomcat, envoi de la connexion en utilisant directement les sockets au lieu de la classe URL, rien y fait. Donc si vous avez des choses à me faire tester je vous en serai très reconnaissant! Amicalement, The Destiny
|
|
dimanche 29 juin 2008 à 21:26:56 |
Re : Servlet rapide en local mais très lent à distance

DARKSIDIOUS
|
Salut, 9 secondes, ca correspond à l'envoi de la requête au serveur, le traîtement de cette dernière, l'exécution de ta servlet (connection à la base, récupèration des données, formattage des données au bon format) et enfin, l'envoi de la réponse au client pour qu'il puisse la traîter.
en local, les 200 ms ne correspondent qu'à l'exécution de la servlet. Tu aura beau optimiser au maximum l'éxécution de la servlet, tu n'y gagnera pas les 9000 ms !
Ce que tu oublie de nous dire, c'est : est-ce que les données transitants entre le serveur et le client sont importantes... si tu dois envoyer plusieurs Mo par exemple, ca n'a rien d'étonnant !
Tu devrais plutôt envisager d'optimiser le volume de données allant du serveur vers le client : utilisation de JSon à la place de XML par exemple, faire des requêtes AJAX asynchrone plutôt que des requêtes HTTP "classique" synchrone, etc. ______________________________________ DarK Sidious
|
|
lundi 30 juin 2008 à 09:39:47 |
Re : Servlet rapide en local mais très lent à distance

thedestiny
|
Merci pour la réponse déjà ;)
En gros tu résumes bien le mécanisme: Envoi d'une requête POST/GET - Traitement de la requête par le servlet - Interrogation de la bdd (la connexion se fait au lancement de la servlet) - Formattage des données - Génération du contenu RDF (format basé sur XML) - Parsing de la réponse par le client - Affichage des infos
Les données qui transitent sont actuellement de l'ordre de la 10aine voir 100aine de ko.. A l'avenir il pourrait éventuellement y avoir des réponses de plusieurs mo d'où mon inquiètude... (les derniers servlets que j'ai fait, même s'ils étaient moins "lourd" ne prenait pas autant de temps à s'executer)
Le protocole HTTP est imposé du fait que le servlet doit pouvoir communiquer avec le client malgré les proxy, les routeurs, les pare-feu etc... qui trainent sur le réseau.
A priori, rien que pour se connecter à la servlet, cela prendrait 4 secondes :/
Amicalement, The Destiny
|
|
lundi 30 juin 2008 à 12:49:54 |
Re : Servlet rapide en local mais très lent à distance

DARKSIDIOUS
|
Salut, Donc tu n'as guère le choix : cela vient de l'infrastructure du réseau en lui même : 4 secondes pour que la servlet commence son éxécution, et 4 secondes pour la requête de retour, + quelques ms pour le traîtement par la servlet... tu tombe sur environ 9 secondes bizarrement ;)
AJAX, ce n'est que des requêtes HTTP, mais se faisant de façon asynchrone. Ca ne changera pas grand chose au niveau proxy, parefeu, etc, mais ca te permettra surtout de faire des requêtes HTTP un peu plus légères. ______________________________________ DarK Sidious
|
|
Cette discussion est classée dans : local, servlet, informations, rapide, distance
Répondre à ce message
Sujets en rapport avec ce message
pb de servlet [ par orely15081982 ]
Bonjour,j'ai un pb pour laisser mon appli java en local .sur le serveur elle se lance nickelmais en local la console java me relance plein d'erreurs..
configuration des routeurs à distance [ par itry ]
Objectif : Permettre la configuration de routeurs du labo cisco à partir d'un poste distant sur le réseau interne de l'INT. Principe : Chaqu
ouverture de fichier depuis une servlet [ par gregxyz ]
Bonjour, j'ai un formulaire dans une page jsp qui redirige vers ma servlet, dans cette servlet je genere un flux excel avec POI et ensuite je
lire une image renvoyer par une servlet avec un navigateur??? [ par asetti ]
slt, j'ai une servlet qui créé une courbe avec jFreeChart et qui l'a renvoie sous forme de graphique. (mon navigateur l'insere avec les balise d'image
courbe dans un servlet [ par progrima ]
Bonjour tout le monde , dans le cadre d'un projet fin d'etude je dois réaliser un traitement qui extrait des données d'une base de donnée et qui affic
un EJB peut-il faire accès à une Servlet ? [ par yngwaar ]
Bonjour, pour une application java utilisant des EJB, nous rencontrons des problèmes et l'une des solutions serait la suivante, mais je ne sais pas s
Probleme Connxion base de donnée ACCESS via JSP/SERVLET [ par fartman2001 ]
voila, je debute completement avec les servlets et jsp, et on me demande à l'aide d'une jsp et/ou d'une servlet de me connecter à une base de donnée A
Obtenir les informations de version d'un programme [ par dekortic ]
Bonjour, je travaille actuellement sur un programme de gestion et je butte sur le problème suivant: Je ne parviens pas à afficher dans une boite de di
Afficher les informations de versions et les différentes propriétés du programme (auteur, copyright, titre etc.) [ par dekortic ]
Bonjour, je travaille actuellement sur un programme de gestion et je butte sur le problème suivant: Je ne parviens pas à afficher dans une boite de d
Créer un traducteur avec servlet JSP et EJB [ par fanfan78 ]
Bonjours à tous,Dans un cadre scolaire j'aimerais développer un traducteur permettant à des utilisateurs de saisir un terme en anglais et en retour d'
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice CRéATION D'UNE BASE DE DONNéE SOUS SQL AZURECRéATION D'UNE BASE DE DONNéE SOUS SQL AZURE par junarnoalg
Sans rentrer dans les détails, je me propose ici de faire un rapide tour de ce que propose SQL Azure.
SQL Azure est avant tout un service d'hébergement de base de données relationnelles construit sur SQL Server. Il permet aux entreprises d...
Cliquez pour lire la suite de l'article par junarnoalg TECHDAYS PARIS 2010 : LES SERVICES D'APPLICATIONS DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LES SERVICES D'APPLICATIONS DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Xavier Moreels et Julien Bakmezdjian Ce sujet est lié au partage des applications comme services dans SharePoint 2010, ceci représente la possibilité de créer sa propre application qui sera utilisable comme ceux en standard : Search...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|