windev houvreconnexion long timeoutLors de vos développements en windev vous constaterez peut être que vos appels à la fonction HOuvreConnexion peuvent être très long. J'ai une solution assez originale à vous proposer pour pallier ce comportement ayant fonctionné dans mon cas.

Il arrive que certaines fonctions windev se comportent de manière inattendues, parfois le framework windev s'appuie sur des briques applicatives système ou tierces dont le comportement fluctue au gré des environnements, nous l'avons constaté récemment avec le support approximatif des fonctions FTP sous windows 8 ou les régressions introduites avec les mises à jour des API android etc. les exemples regorges. Cependant on ne s’attend pas à des bizarreries venant d'une fonction aussi basique et courante que HOuvreConnexion.

A moins que vous ne faisiez que du HyperFile SQL en mode classique (récemment renommé HFSQL) vous n'êtes pas sans savoir qu'en mode serveur, et à plus forte raison avec des bases de données tierces (MySQL, Oracle etc.), qu'on utilise HOuvreConnexion suivi d'un HChangeConnexion pour ouvrir une connexion personnalisée et surcharger les paramètres des connexions décrites dans l'analyse du projet (en effet HChangeConnexion permet de modifier à la volée la connexion des fichiers de données). On s’attend donc éventuellement à ce que HOuvreConnexion échoue lamentablement sur un timeout si le serveur distant n'est pas joignable ou se connecte directement sans sourciller (outre les problèmes de password etc.), quelle autre erreur pourrait bien survenir?

Certains clients nous remontaient des lenteurs à l'ouverture de leur application, après une première recherche et analyse de performance nous comprenions que le problème se situait du coté de HOuvreConnexion qui bloquait l'application de l'ordre de 6 à 9 secondes mais fini pourtant par se connecter correctement. Après ouverture d'un ticket auprès de la hotline pcsoft nous commencions à chercher un contournement. Contexte: à l'époque en windev 14 (application client/serveur) dans un environnement windows + contrôleur de domaine windows serveur 2008.

Je me permet de poster ce billet car j'ai à nouveau rencontré le cas récemment en Windev 18 sous windows serveur 2012 R2, force est de constater que malgré notre retour d'expérience auprès de la hotline pcsoft 4 ans après rien n'a changé (too bad ...) et j'imagine que nous ne sommes pas les seuls à rencontrer de temps en temps cet embêtement dommageable pour les utilisateurs.

Bref nous avons donc procédé à des analyses de trames et nous sommes rendu compte que, pour une raison assez obscure, dans ces environnements lorsque houvreconnexion appelle directement l'adresse un adresse ip (et pas le nom du serveur) le framework windev essaye une résolution de nom inverse (aucune trace de cela dans la documentation), le reverse DNS étant désactivé par défaut HOuvreConnexion attend donc pitoyablement le timeout. Si vous constatez le même comportement avant de chercher dans tous les sens pensez à vérifier que la résolution de nom inverse fonctionne correctement sur votre réseau grâce à nslookup auquel cas je vous renvoie à vos compétences d'administration système pour la configuration du reverse dns sur un DC microsoft.

J'espère que ce billet vous aura fait gagner un temps précieux.
Partager sur:
A propos de l'auteur:
Guillaume Jeantet: titulaire d'une licence pro et fort de quelques années d'expériences je suis administrateur système et développeur mais surtout un autodidacte dynamique et passionné. Je partage sur UBDT mes coups de coeurs et astuces.

Autres articles qui pourraient vous intéresser.

windev champ html version ieWindev: version internet explorer du champ html (WebBrowser control)
Comment forcer la version plus récente d'internet explorer dans le champ html windev ou le WebBrowser control.
windev tableoccurrenceWindev: TableOccurrence et optimisation
Comment optimiser TableOccurrence qui peut avoir un comportement différent selon qu'on travaille sur une table fichier (en accès direct) ou une table mémoire.
windev acces natif non installeWindev: accès natif mysql non installé
Parfois après l'installation de l'accès natif mysql windev indique toujours dans l'écran de configuration des connexions que l'accès natif n'est pas installé. Voyons comment corriger ce problème.
sql relation premiers enregistrementsSQL: les X premiers/derniers enregistrements liés à ...
Amis développeurs il arrivera certainement le jour ou vous chercherez à connaitre les X premiers/derniers enregistrements liés à une autre table via une requête SQL. J'ai eu plus spécifiquement le cas pour un logiciel de versioning dans lequel je voulais qu'une requête retourne les dernières versions de chaque fichier et la solution suivante peut vous permettre d'économiser pas mal de traitement.

Proposer un nouveau commentaire

Votre pseudo s'il vous plaît :

Email (Facultatif, n'est pas affiché et permet de recevoir des notifications de validation / réponses):

Votre site Web (facultatif) :

Exprimez vous :

:arrow::D:confused::cool::cry::eek::evil::!::idea:lol:mad::|:?::p:redface::rolleyes::(:):wink: