Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1329 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Problème aléatoire sur les web services

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème aléatoire sur les web services

n°2252183
psychodark​squall
VégétAryen
Posté le 03-03-2015 à 11:39:45  profilanswer
 

Bonjour,
 
Ma boîte fournit une solution de saisie des temps/planification pour des entreprises de consulting. Les utilisateurs se connectent en web sur l'adresse IP de notre serveur qui héberge l'application, et un port propre à leur société et à leur version de l'application. Ils arrivent sur une page de connexion login/mot de passe, et en se connectant, ils tombent sur une page unique fonctionnant par onglets, AJAX, web services (la page n'est donc jamais rechargée tout le long de la navigation).
 
Actuellement j'ai des utilisateurs qui rencontrent un problème récurrent mais pas systématique : ils font leur vie sur la page web de l'appli (consulter leur planning, saisir des temps jour par jour, demander des congés, créer des notes de frais...), et toutes ces actions diverses provoquent le lancement de web services. J'en viens au problème : à un moment donné, il peut arriver, durant l'exécution d'un web service (à noter que ça se produit parfois dès la connexion), qu'ils aient un pop-up d'erreur avec un message de type : "http://ip:port/fichier.js" (avec évidemment l'IP du serveur, leur port dédié, et le nom d'un fichier JS de l'application). En validant ce message d'erreur ils retournent sur la page de connexion. Le nom du fichier JS est variable, j'imagine que ça dépend dans quel fichier JS se trouve le web service qui a planté (si ça plante lors d'une demande de congés, c'est le nom du fichier JS traitant les congés qui est afficher dans le pop-up).
 
J'ai pu obtenir un screen d'un utilisateur avec la console de Chrome ouverte, ce sera plus parlant :
http://img11.hostingpics.net/thumbs/mini_431462bug.png
 
J'ai évidemment cherché des infos sur ces messages d'erreur, mais rien ne semble correspondre à leur cas (version de Chrome, le fait que ce soit aléatoire, pare-feu...).
 
Voici quelques infos importantes :
- Actuellement sur les deux boîtes qui utilisent notre application (bêta-testeurs), ce sont les seuls a rencontré le problème
- Tous ces problèmes ont été constatés avec une connexion 4G
- Des speedtests ont été réalisés par les utilisateurs pile au moment du bug, et ils sont plus que corrects
- Ce bug dure généralement un laps de temps très court (il survient une fois, oblige l'utilisateur à se reconnecter, et ne survient plus avant un moment), mais c'est arrivé qu'il dure quelques secondes (il survient, oblige l'utilisateur à se reconnecter, et survient encore au moment de la reconnexion, nécessitant parfois trois ou quatre essais), voire quelques minutes
- J'utilise un service de monitoring qui teste la connexion à l'application sur leur port, avec un de leurs logins/mots de passe, toutes les minutes, et il n'a jamais relevé de problèmes (à part quand notre serveur a crashé :o )
- Nous n'avons jamais constaté ce problème durant le développant, soit des milliers d'essais sur plusieurs adresses (dont la leur)
 
Merci beaucoup.

mood
Publicité
Posté le 03-03-2015 à 11:39:45  profilanswer
 

n°2252207
pimous7892​0
Posté le 03-03-2015 à 15:45:58  profilanswer
 

psychodarksquall a écrit :


- Tous ces problèmes ont été constatés avec une connexion 4G


 
Un problème au niveau de l'itinérance des données ?


---------------
~¤Mon topic Achat/Vente¤~
n°2252209
psychodark​squall
VégétAryen
Posté le 03-03-2015 à 16:03:03  profilanswer
 

pimous78920 a écrit :


 
Un problème au niveau de l'itinérance des données ?


 
 
Qu'entends-tu par là ? Tu parles de l'itinérance des données de manière générale, ou de l'option intitulée "Itinérance des données" qui sert à utiliser des réseaux mobiles d'autres opérateurs ?

n°2252211
rufo
Pas me confondre avec Lycos!
Posté le 03-03-2015 à 16:21:32  profilanswer
 

T'as vu qu'en rouge, il indique un time out sur le chargement de ressource, j'imagine, le fichier js qui pose pb ?
 
Je pense que le pb se situe sur le transport des données (donc pb réseau et non applicatif), problème qu'on a peu de chance de rencontrer sur un réseau local de dév. Sans doute un pb transitoire et ponctuelle. A voir si en réduisant le poids des fichiers (si c'est possible) si ça le fait encore... Y'as des compacteurs de code js ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2252214
psychodark​squall
VégétAryen
Posté le 03-03-2015 à 16:35:56  profilanswer
 

rufo a écrit :

T'as vu qu'en rouge, il indique un time out sur le chargement de ressource, j'imagine, le fichier js qui pose pb ?
 
Je pense que le pb se situe sur le transport des données (donc pb réseau et non applicatif), problème qu'on a peu de chance de rencontrer sur un réseau local de dév. Sans doute un pb transitoire et ponctuelle. A voir si en réduisant le poids des fichiers (si c'est possible) si ça le fait encore... Y'as des compacteurs de code js ;)


 
Oui j'ai vu ce qu'il y a en rouge quand même :D Justement tout porte à croire que c'est un problème de réseau.
 
Les tests n'ont pas été faits que sur le réseau local de dév, l'appli est déployée en interne pour nos services et donc des mecs s'y connectent depuis chez eux ou d'autres villes en Wi-Fi ou Ethernet, et on n'a jamais eu un seul problème.
 
Mais j'y connais rien en réseaux, je suis étonné que leurs speedtests soient bons en même temps que le problème est présent. Mais oui je leur ai déjà signalé qu'un réseau 4G pouvait être instable et que la moindre microcoupure normalement invisible à l'utilisation pouvait du coup stopper net le fonctionnement.
 
Merci j'irai voir les compacteurs de code, et oui il y a sûrement beaucoup à faire pour améliorer le fonctionnement de l'appli et l'échange des données avec le serveur (pour te dire il n'y a pas de formulaires, que des web services et de l'AJAX, parfois plusieurs tournant en même temps).

n°2252295
rufo
Pas me confondre avec Lycos!
Posté le 04-03-2015 à 16:59:14  profilanswer
 

Faudrait regarder à combien est fixé le timeout (au bout de combien de temps le navigateur laisse tomber le chargement d'une ressource). Est-ce en ms ou en secondes ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2252311
Hermes le ​Messager
Breton Quiétiste
Posté le 04-03-2015 à 20:50:20  profilanswer
 

rufo a écrit :

Faudrait regarder à combien est fixé le timeout (au bout de combien de temps le navigateur laisse tomber le chargement d'une ressource). Est-ce en ms ou en secondes ?


 
+1
 
Et accessoirement, il faudrait aussi que l'applie prévoit ce genre de situation, gère l'erreur et éventuellement cherche à retenter 1 ou 2 fois in the background, puis, si ca ne marche toujours pas, alors afficher un message d'erreur personnalisé et non laisser le navigateur s'en charger. :/
 
Ca ressemble quand même à un truc un peu codé à l'arrache et/ou jamais complètement terminé.

n°2252320
psychodark​squall
VégétAryen
Posté le 04-03-2015 à 22:40:18  profilanswer
 

OK merci je regarderai ça.
 

Citation :

Ca ressemble quand même à un truc un peu codé à l'arrache et/ou jamais complètement terminé.


 
Ca c'est la version courte :o En vrai ça ressemble à trois développeurs juniors développant quatre applications en même temps sur trois langages différents et sur PC et mobiles en plus de faire du support technique et de gérer les problèmes de serveurs avec un turn-over important, pas de spécs écrite, pas de chef de projet, et un boss qui change d'avis toutes les semaines et qui pense qu'une appli mobile ça prend un mois à développer sur iOS quand on connaît même pas le langage :love:  :pt1cable: :cry:

n°2252335
rufo
Pas me confondre avec Lycos!
Posté le 05-03-2015 à 10:18:17  profilanswer
 

Encore un projet bien parti :/
 
Tiens, tu passeras ces stats à ton Boss : http://fr.wikipedia.org/wiki/Project_management_office
Ca le fera peut-être réfléchir et à changer de méthode...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2252764
psychodark​squall
VégétAryen
Posté le 10-03-2015 à 10:58:06  profilanswer
 

Hello,
 
Je reviens aux nouvelles avec quelques précisions :
- les fichiers JS font entre 600 et 3500 lignes chacun
- chacun des modules "Timesheet", "Frais", "Planning" et "Congés" (c'est-à-dire les quatre fichiers JS correspondant) est chargé via un webservice à l'ouverture du site
- ces modules comptent eux-mêmes plusieurs webservices qui seront lancés lors de diverses actions de l'utilisateur (parfois très rapidement voire en même temps)
 
Sinon effectivement il n'y a pas de gestion de timeout ni d'erreur pour le timeout (d'autres erreurs sont gérées quand même).

mood
Publicité
Posté le 10-03-2015 à 10:58:06  profilanswer
 

n°2252971
psychodark​squall
VégétAryen
Posté le 11-03-2015 à 16:38:12  profilanswer
 

Bonjour,
 
Pourriez-vous m'indiquer où se paramètre le timeout/retry sur un web service et comment gérer les erreurs qui en découlent ?
 
Merci.

n°2252975
Hermes le ​Messager
Breton Quiétiste
Posté le 11-03-2015 à 17:03:47  profilanswer
 

psychodarksquall a écrit :

Bonjour,
 
Pourriez-vous m'indiquer où se paramètre le timeout/retry sur un web service et comment gérer les erreurs qui en découlent ?
 
Merci.


 
?? ben ca dépend complètement comment a été programmé le bouzin... Si c'est basé sur jquery, ca se gère directement sur les appels Ajax.

n°2252980
psychodark​squall
VégétAryen
Posté le 11-03-2015 à 17:26:34  profilanswer
 

La partie client combine YUI et JQuery mais il n'y a absolument rien sur un quelconque timeout.
 
La partie serveur est en 4D. Oui oui c'est un langage qui existe... Ça doit sûrement être là...
 
Voici la fonction JS utilisée pour tous les webservices (perso j'y pige rien) :
 

Code :
  1. function WS(_methode, _params, _callbackSuccess, _callbackFailure) {
  2.         var SOAPRequete = '<?xml version="1.0" encoding="UTF-8" ?>'
  3.                 + '<SOAP-ENV:Envelope '
  4.                 + 'SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"'
  5.                 + ' xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" '
  6.                 + 'xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" '
  7.                 + 'xmlns:xsd="http://www.w3.org/2001/XMLSchema" '
  8.                 + 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'
  9.                 + '<SOAP-ENV:Body>'
  10.                 + '<mns:'
  11.                 + _methode
  12.                 + ' xmlns:mns="http://www.4d.com/namespace/default/">';
  13.         for (var i = 0; i < _params.length; i++) {
  14.             if (_params[i].type === "string" ) {
  15.                 _params[i].valeur = _params[i].valeur.replace(/&/g, '&amp;').replace(/</g, '&lt;');
  16.             }
  17.             SOAPRequete = SOAPRequete
  18.                     + ' <FourD_arg' + (i + 1) + ' xsi:type="xsd:'
  19.                     + _params[i].type + '">' + _params[i].valeur
  20.                     + '</FourD_arg' + (i + 1) + '>';
  21.         }
  22.         SOAPRequete = SOAPRequete + '</mns:' + _methode + '>'
  23.                 + '</SOAP-ENV:Body>' + '</SOAP-ENV:Envelope>';
  24.         var cfg = {
  25.             on: {
  26.                 failure: function(id, o, args) {
  27.                     if (typeof _callbackFailure !== "undefined" && _DEBUG === false) {
  28.                         _callbackFailure(o.responseXML);
  29.                     } else {
  30.                         var message = "";
  31.                         if (o.responseXML) {
  32.                             message = getNodeText(o.responseXML.getElementsByTagName("faultstring" )[0]);
  33.                         } else {
  34.                             try {
  35.                                 message = _methode + "\n" + o.statusText;
  36.                             } catch (e) {
  37.                                 message = _methode;
  38.                             }
  39.                         }
  40.                         show_error_dialog(message);
  41.                     }
  42.                 },
  43.                 success: function(id, o, args) {
  44.                     _callbackSuccess(o.responseXML);
  45.                 }
  46.             },
  47.             method: "POST",
  48.             data: SOAPRequete,
  49.             xdr: {
  50.                 dataType: 'xml'
  51.             },
  52.             headers: {
  53.                 "Content-Type": "text/plain; charset=utf-8",
  54.                 "SoapAction": "A_WebService" + "#" + _methode
  55.             }
  56.         };
  57.         Y.io("/4DSOAP", cfg);
  58.     }

n°2260961
psychodark​squall
VégétAryen
Posté le 23-06-2015 à 15:32:27  profilanswer
 

Bonjour,
 
Le problème est toujours là mais j'ai une nouvelle piste, une erreur qui apparaît dans la console de Chrome lorsque le plantage survient : Failed to load resource: net::ERR_EMPTY_RESPONSE.
 
J'ai vu sur le net que ça pouvait être propre à Chrome et à un problème de cache du PC voire du routeur. J'ai testé avec FireFox chez le client où ça plante souvent avec Chrome et effectivement ça fonctionnait nickel avec le renard alors qu'en même temps ça plantait avec Chrome.
 
Ceci dit je reste dubitatif, je pense que c'est seulement une partie du problème, parce que leurs autres applications ne plantent pas spécialement avec Chrome, et en plus ça le fait pas systématiquement, et pas à tout le monde.
 
Ça vous donne des idées ?
 
Merci.


Message édité par psychodarksquall le 02-07-2015 à 10:59:03

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Problème aléatoire sur les web services

 

Sujets relatifs
[resolue] probleme de physiqueOrdre aléatoire d'exécution + duplication traitement d'un BAT
Problème sous Eclipse[RESOLU] problème d'install de CPAN
Vba: problème de récupération des octets[CRC - Matlab] Problème de CRC après génération DLL via matlab
[Res]Problème d'encodage sous fvwm des pages de manuels Gnu/Linux.Probleme preg_replace_callback
HTML/CSS Probleme de format Besoin d'aide !!![Curl] problème d'interprétation des quotes
Plus de sujets relatifs à : Problème aléatoire sur les web services


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR