|
Pb communication temps réel avec serveur HF |
|
DSI WDF
Inscrit: 06/04/2004 12:07
Post(s): 337
|
Bonjour, J'ai une petite appli sur PPC qui accède en temps réel à des données. J'ai des problèmes de connexion qui surviennent de manière aléatoire. et j'obtient ça :
-Code erreur : 74000
-Code erreur WD55 : 4000
-Code d'erreur système : 10054
"La communication avec le serveur IP_DU_SERVEUR:PORT à échoué"
Alors je conçoi tout à fait qu'il y ait des micro coupures en GPRS ou en Wifi, mais j'aimerai bien que le soft puisse faire un retry sans planter, afin de continuer l'execution là ou il en était... Comment vous faites, vous...
Contribution le : 27/12/2005 11:19
|
|
|
Re: Pb communication temps réel avec serveur HF |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Bonjour,
vous pouvez utiliser la commande PING() qui est relativement long sinon vous pouvez utiliser les sockets pour tester votre connexion.
Contribution le : 27/12/2005 13:08
|
|
|
Re: Pb communication temps réel avec serveur HF |
|
DSI WDF
Inscrit: 06/04/2004 12:07
Post(s): 337
|
C'est à dire ? Il faudrai par exemple que je passe un ping sur mon serveur toutes les n secondes en tâche de fond, dans un thread par exemple....? Ou bien simplement faire un ping avant chaque execution de requête distante ? C'est comme ça que vous procédez ? ça ralenti pas un peu beaucoup l'appli ? N'y as t'il pas un moyen moins "bidouille" de tester et récupèrer la connexion au serveur
Contribution le : 27/12/2005 14:41
|
|
|
Re: Pb communication temps réel avec serveur HF |
|
DSI WDF
Inscrit: 06/04/2004 12:07
Post(s): 337
|
Bon, alors avant chaque requête executée sur la base distante, je lance une procédure qui fait un socketconnecte sur le serveur. Ca me renvoi bien vrai ou faux selon que le serveur est dispo ou pas. Mais au bout du compte je ne suis pas plus avancé... Sinon ping n'est pas dispo sur PPC. Je suis à l'écoute de toutes les idées. Merci, Seb
Contribution le : 27/12/2005 15:44
|
|
|
Re: Pb communication temps réel avec serveur HF |
|
|
le socketconnect est beaucoup plus rapide que le ping.
En fonction du résultat si vrai tu passes ta requ^te si faux, tu deconnectes, et tu fais une tentative de nouvelle connexion...
Enfin je dis peut être une grosse annerie car je n'utilise pas HF C/S.
Toutefois je pense que le principe est très proche de ce qu'on trouve sur les autres SGBDR, dans le cas d'un wifi, il est clair que les coupures entre le client et le serveur sont courantes, et si le client ne prévoit pas une reconnexion automatique avec le contexte initial de ta connexion, il n'y a pas d'autre solution qu'une connexion/déconnexion à chaque fois que le serveur n'est pas vu.
Je pense qu'il faut que les personnes qui utilisent HF C/S fassent une demande d'amélioration au support technique de pcsoft, car sinon la base est difficilement exploitable sans bloquer l'application cliente.
Contribution le : 27/12/2005 22:26
|
|
|
Re: Pb communication temps réel avec serveur HF |
|
Inscrit: 19/11/2002 12:20
Post(s): 390
|
Bah un ping n'est jamais qu'une connexion sur un serveur http sur le port 80 ;) Et il mesure ensuite le temps qu'à mis le serveur pour répondre.
Sinon, tu as essayé avec la gestion des erreurs (Exception) pour voir si au moins tu arrives à trapper l'erreur? Egalement, avant d'utiliser les fonctions d'accès à la base distante, tu checkes si la connexion est toujours valide? (je ne sais pas si c'est possible, je demande).
Contribution le : 27/12/2005 22:29
|
|
|
Re: Pb communication temps réel avec serveur HF |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
bonjour,
A ma connaissance la solution la plus rapide reste la fonction SocketConnecte(), a tester avant chaque requête.
Contribution le : 27/12/2005 22:46
|
|
|
Re: Pb communication temps réel avec serveur HF |
|
|
Citation : Bah un ping n'est jamais qu'une connexion sur un serveur http sur le port 80 ;)
C'est totalement faux, un ping n'a jamais été une connexion sur un serveur http ou sur n'importe quel serveur Citation : Et il mesure ensuite le temps qu'à mis le serveur pour répondre.
C'est incomplet car le postulat initial est inexact. Comment fais tu pour "pinger" une machine sur lequel il n'y a pas de serveur? pour plus d'infos lire http://www.delafond.org/traducmanfr/man/man8/ping.8.htmlle socketconnecte est la méthode la plus efficace et la plus sure. Rien n'empêche de bloquer la réponse au ping avec un firewall, parcontre le port du serveur qu'on utilise doit toujours être accessible, d'où le socketconnecte...
Contribution le : 27/12/2005 23:21
|
|
|
Re: Pb communication temps réel avec serveur HF |
|
DSI WDF
Inscrit: 06/04/2004 12:07
Post(s): 337
|
Donc comme je le disais, le socketconnect m'informe bien de la disponnibilité ou non du serveur, mais ça ne réactive en aucun cas la connexion. Les traitements d'exceptions j'en ait mis sur chaque requête, mais je peux la relancer 50 fois à la suite, une fois que la connexion est perdue, ça semble définitif... Dans mon cas les exceptions sur les requêtes me permettent juste de faire apparaite un petit message d'erreur avant de faire un finprogramme() Pas glop tout ça...
Contribution le : 28/12/2005 11:00
|
|
|
Re: Pb communication temps réel avec serveur HF |
|
Animateur WDF
Inscrit: 19/01/2004 13:48
De www.sigmasys.fr
Post(s): 988
|
Bonjour,
As tu pensé aux transactions ?
En cas de coupure : - annule la transaction courante - reconnecte toi à la base - relance ta requête.
Bon dév.,
Totof
Contribution le : 28/12/2005 11:20
|
|
|
Re: Pb communication temps réel avec serveur HF |
|
DSI WDF
Inscrit: 06/04/2004 12:07
Post(s): 337
|
J'avais pas pensé à ça, c'est une piste en effet. Par contre quand on sait que la connexion à 10 pauvres bases met environ 1 minute via GPRS...
Mais je vais tester quand même ça sera peut être un moindre mal.
Merci pour l'idée,
Contribution le : 28/12/2005 15:10
|
|
|
Re: Pb communication temps réel avec serveur HF |
|
Inscrit: 19/11/2002 12:20
Post(s): 390
|
Citation : Daniel a écrit: C'est totalement faux, un ping n'a jamais été une connexion sur un serveur http ou sur n'importe quel serveur
... Ohhhhh pardonnez moi monseigneur de ne pas avoir cité la RFC tartanpion untel exacte et d'avoir utilisé des termes impropres qui vous ont fait sursautés dans la nuit... C'est juste que (dans mon esprit de grand pervers malade doublé d'un débutant complet à la limite du nerd, j'ai fait un raccourci peut être par trop saisissant?), par exemple pour faire un ping (ou pardon puisque c'est si inexact, on va dire un test) en PHP (rooohhh désolé, je parle d'un sous langage débile, vous préféreriez le Pascal peut être?) pour tester si un serveur est up, on ouvre une socket sur le site en question (ohhh sur le port 80 dis donc...) et on regarde la réponse... Même qu'à partir du temps que mets la réponse on peut savoir pas mal d'infos... Maintenant veuillez pardonner à l'incongru vermiceau que je suis d'avoir utilisé un terme si respectable hors de son contexte d'intellectuel informatique masturbatoire et d'avoir marché par... analogie (rooohhh le gros mot...)...
Contribution le : 28/12/2005 21:18
|
|
|
Re: Pb communication temps réel avec serveur HF |
|
Inscrit: 19/11/2002 12:20
Post(s): 390
|
Citation : 2501 a écrit: Donc comme je le disais, le socketconnect m'informe bien de la disponnibilité ou non du serveur, mais ça ne réactive en aucun cas la connexion.
Les traitements d'exceptions j'en ait mis sur chaque requête, mais je peux la relancer 50 fois à la suite, une fois que la connexion est perdue, ça semble définitif...
Dans mon cas les exceptions sur les requêtes me permettent juste de faire apparaite un petit message d'erreur avant de faire un finprogramme()
Pas glop tout ça...
Mais dans le cas où la requête échoue, normalement dans le traitement des exceptions tu peux faire un espèce de "Sinon", dans ce sinon, tu ne peux pas faire appel à une procédure qui relance la connexion? Genre: Quand Exception dans requête Faire Test serveur online reconnexino requête Fin Enfin un truc du style?
Contribution le : 28/12/2005 21:20
|
|
|
Re: Pb communication temps réel avec serveur HF |
|
Inscrit: 19/11/2002 12:20
Post(s): 390
|
Sinon, question bête, est ce que ça prends beuaucoup de temps en GPRS de se reconnecter? (Je n'ai testé qu'en ADSL). Car dans ce cas autant faire: Connexion, Batch de requêtes exécutées dans un intervalle de temps court, Déconnexion.
etc... pour éviter le problème de coupures...
Contribution le : 28/12/2005 21:40
|
|
|
Re: Pb communication temps réel avec serveur HF |
|
|
Citation : lmame a écrit: Citation : Daniel a écrit: C'est totalement faux, un ping n'a jamais été une connexion sur un serveur http ou sur n'importe quel serveur
... Ohhhhh pardonnez moi monseigneur de ne pas avoir cité la RFC tartanpion untel exacte et d'avoir utilisé des termes impropres qui vous ont fait sursautés dans la nuit... C'est juste que (dans mon esprit de grand pervers malade doublé d'un débutant complet à la limite du nerd, j'ai fait un raccourci peut être par trop saisissant?), par exemple pour faire un ping (ou pardon puisque c'est si inexact, on va dire un test) en PHP (rooohhh désolé, je parle d'un sous langage débile, vous préféreriez le Pascal peut être?) pour tester si un serveur est up, on ouvre une socket sur le site en question (ohhh sur le port 80 dis donc...) et on regarde la réponse... Même qu'à partir du temps que mets la réponse on peut savoir pas mal d'infos...
Maintenant veuillez pardonner à l'incongru vermiceau que je suis d'avoir utilisé un terme si respectable hors de son contexte d'intellectuel informatique masturbatoire et d'avoir marché par... analogie (rooohhh le gros mot...)...
Il n'y a pas de monseigneur, simplement une reprise d'une information incorrecte. Le lien est simplement pour les personnes qui ne connaissent pas ce que fait un ping et sur quelle couche il se base. Je ne vois pas le rapport avec le PHP, et le pascal, pourquoi ne pas parler de python, de perl? Il s'agit simplement d'un problème de réseau. @+ "Incongru vermiceau"
Contribution le : 29/12/2005 17:02
|
|
|
Re: Pb communication temps réel avec serveur HF |
|
DSI WDF
Inscrit: 06/04/2004 12:07
Post(s): 337
|
Citation : lmame a écrit: Sinon, question bête, est ce que ça prends beuaucoup de temps en GPRS de se reconnecter? (Je n'ai testé qu'en ADSL).
C'est justement bien là le pb. En GPRS, pour me connecter au strict minimum des bases necessaires (environ 15), ça prends bien 1 à 2 minutes, voir plus... Sinon en effet, si j'était en ADSL il n'y aurait pas de PB. Par contre en écrivant, je penses à un truc, une fois la connexion perdu, peut être qu'un simple HOuvreConnexion suffirait à tout réactiver, sans avoir besoin de refaire un HChangeConnexion et un HPasse sur chaque fichier (c'est ça qui prends du temps en fait). Je vais tester. Sinon ma solution de repli est la suivante : connexion GPRS pour synchro des données, et travail en local, mais c'est plus vraiment du temps réel... En tout cas je vous tiens au courant... en attendant vous pouvez continuer à vous étriper sur les histoire de ping pong
Contribution le : 29/12/2005 18:30
|
|
|
Re: Pb communication temps réel avec serveur HF |
|
|
Citation : 2501 a écrit: Citation : lmame a écrit: Sinon, question bête, est ce que ça prends beuaucoup de temps en GPRS de se reconnecter? (Je n'ai testé qu'en ADSL).
C'est justement bien là le pb. En GPRS, pour me connecter au strict minimum des bases necessaires (environ 15), ça prends bien 1 à 2 minutes, voir plus...
Je ne connais pas ton appli, mais pourquoi autant de bases? Si ton appli est simple pourquoi ne pas passer par une application web? Dans ce cas tu simplifies la mise à jour de l'application (qui n'a plus lieu, sauf sur le serveur ), tu n'es plus gèné par les problème de déconnexion car tu n'es plus contraint par le wifi...
Contribution le : 29/12/2005 21:00
|
|
|
Re: Pb communication temps réel avec serveur HF |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Bonjour, [Moderateur] Avis aux partenaires: Evitons les chamailleries s'il vous plait entre nous Il nous arrive a tous d'écrire à un moment ou à un autre d'écrire des choses qui ne sont pas toujours exact. Il est bon dans ce cas que cela soit recentré avec courtoisie. [/Moderateur] PingComposante de TCP/IP, vérifie les connexions établies à un ou plusieurs hôtes distants. connexion. Important une réponse d'échec telle que « Délai de la demande écoulé » peut signifier que l'hôte de destination est hors service ou qu'il n'existe pas de route de retour jusqu'à votre ordinateur. Une réponse d'échec telle que « Destination impossible à atteindre » affiche l'adresse IP du routeur qui a essayé d'acheminer le paquet, mais n'a pas trouvé de route valide. Les Sockets permettent quand à eux de créer un dialogue entre un client et un serveur sur un port donné. En résumé même si le Ping renvoi une réponse d'echec, cela ne signifie pas que l'on ne peu pas effectuer une connection à un poste distant surtout si le routeur est justemment configuré pour ne pas répondre au PING. D'ou l'intérêt de l'utilisation du SocketConnecte()Je pense que l'utilisation du SocketConnecte() conjointement à l'utilisation des transactions comme le préconise Totof serait à mon avis le meilleur procédé pour ce type de
Contribution le : 30/12/2005 00:11
|
|
Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
|
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
|