Comment faire fonctionner correctement mon débuggueur ?

SOLVED

Bonjour,

Je voudrais relancer le sujet  : https://www.sagecity.com/fr/enterprise-management-sage-x3-france/f/enterprise-management-sage-x3-france-technique/126763/comment-faire-pour-faire-fonctionner-mon-debuggueur

Je rencontre exactement le même problème que cette personne mais il n'y a pas eu de réponse à l'époque alors j'espère trouver quelqu'un maintenant qui pourrait m'aider.

En résumé, j'ai mis un breakpoint dans mon code et j'ai attaché le processus à ma session X3 que j'utilise pour faire mon test. Sur la page X3, le traitement s'arrête bien (j'ai la roue qui tourne) par contre dans Eclipse rien se passe. La perspective debbug ne s'ouvre pas et si je l'ouvre manuellement je n'ai pas accès aux flèches pour me permettre de continuer le pas à pas.

Je me retrouve à chaque fois coincé.

Est-ce que quelqu'un a déjà rentré ce genre de problème et aurai trouvé une solution ?

Merci.

Parents
  • 0
    SUGGESTED

    Bonjour Delph,

    Il s'agit d'un problème récurrent et bon nombre de mes collègues ont carrément abandonné l'idée d'utiliser le débugger, en désespoir de cause et vu le mutisme du support Sage (la preuve, sur ce forum). Le manque de fiabilité que nous constatons tous est particulièrement navrant. Après tout, on est en 2021, et en droit d'espérer qu'un débugger débugge. Si, si, quand même.

    Pour ma part, je continue à l'utiliser (et même derrière un VPN), mais le comportement s'avère fantasque, j'en conviens. Mais une fois que ça marche, c'est pour de bon jusqu'à déconnexionSmiley. Parfois même toute une journée.

    Je vous livre ici quelques suggestions tout à fait empiriques, quelques unes d'entre elles devraient assurer un fonctionnement correct, disons... probablement.

    - Pour commencer, assurez-vous qu'il n'y a aucune session web orpheline de votre utilisateur qui pointe sur Eclipse. Pour ce faire, avant d'ouvrir Eclipse, vérifier la fonction Sessions client web filtrée sur votre utilisateur X3, et déconnectez sans pitié toute session qui mentionnerait ".../$studio(..." dans la colonne Dernière URL. Votre Eclipse n'étant pas ouvert, vous ne devriez en avoir aucune.

    - Si certaines tentatives précédentes ont échoué, il y a un gros risque que vous ayez une ou plusieurs sessions classiques orphelines : il est important de les tuer aussi ! Dans notre cas, il n'est jamais possible d'utiliser les options disponibles dans X3 pour ce faire (autre vaste sujet...). Nous avons fini par concevoir un processus de portail pour le faire en un seul clic, mais auparavant il fallait aller sur le gestionnaire de tâches du serveur et trucider le processus adonix.exe (sélectionné selon son n° correct de processus).

    - Bref, dans l'idéal, vous n'avez que le client web n'affichant que la page d'accueil (vous n'avez accédé à aucune fonction classique). La fonction Sessions client web n'affiche que votre session en cours, et la fonction Sessions client classique n'affiche rien du tout.

    - Ouvrez ensuite Eclipse ! Il se peut que votre session client Eclipse et votre session client web à débugger ne soient pas sur le même process Node (N0 ou N1 dans la fonction citée ci-dessus). Mais ce serait préférable, semble-t-il. Si le debug échoue, fermez Eclipse et votre session web, allumez un cierge et retentez tout depuis le début. Avec un peu de chance, vos deux sessions seront sur le même process.

    - Dans le paramétrage du port utilisé par Eclipse, et si vous êtes plusieurs utilisateurs potentiels du debugger, essayez d'utiliser un n° de port strictement personnel, supérieur à 10000. Il m'est arrivé de voir sur mon Eclipse une session de debug lancée par un collègue !

    - Utilisez de préférence le nom réseau de votre machine plutôt que son adresse IP : celle-ci est susceptible de changer d'un jour à l'autre, ce qui vous obligerait à la modifier chaque jour

    - Si vous modifiez le nom réseau ou le n° de port depuis Eclipse, il s'agit de paramètres utilisateurs, et votre session client web continuera à utiliser les anciennes valeurs. Donc, déconnectez votre navigateur de X3, et reconnectez-vous pour prendre en compte les nouvelles valeurs.

    - Ouvrez d'emblée la perspective Debug d'Eclipse, avec la view Debug ! Au moins vous verrez tout de suite si le déclenchement du debug est effectif ou non.

    - Ne déclenchez pas le debugger d'emblée avec un simple Dbgaff. Ça peut certes marcher, mais sans garantie. Personnellement, j'ouvre n'importe quelle fonction classique (gestion des articles, par exemple), j'attache ce processus à mon Eclipse et... je quitte simplement la fonction pour déclencher le debugger. Le debugger se déclenche (Allelujah !) et je le coupe tout de suite : c'est exactement ce que je voulais. Ensuite n'importe quel Dbgaff sera tout à fait efficace car le "canal" est créé entre votre session Eclipse et votre session web. Si d'emblée le debugger n'est pas déclenché, eh bien, fermez soit Eclipse, soit le navigateur web (soit dans les cas désespérés, les deux !) et retentez votre chance. N'oubliez pas le cierge, on ne sait jamais.

    Je ne suis pas sûr que tous ces conseils soient tous utiles et pertinents, mais sans autre soutien de l'éditeur, on serait même tenté d'utiliser des formules magiques au cas où ce serait efficace pour faire fonctionner ce satané debugger.

    Patience et bon courage ! 

  • 0 in reply to Pierre P

    Pour être honnête, en 2023, les choses se sont améliorées depuis deux ans. Du moins sur certains aspects.
    - le processus de déconnexion de sessions orphelines est plus simple, plus fiable et plus efficace
    - s'il arrive encore que l'appel du debugger échoue, cela devient rare. Et dans ce cas, une deuxième tentative est toujours couronnée de succès.

    Le côté un peu vachard de mon post de l'époque est donc largement obsolète. Mais sur ce sujet du debugger, on a encore une belle marge de progression.

    Ainsi, le plugin Eclipse de Sage et les dernières versions d'Eclipse ne sont plus compatibles. A ma connaissance, la dernière version compatible d'Eclipse est la 2020-12 (4.18.0). Celle recommandée par Sage est la 2019-03, sans complexe.. Je n'ai pas de temps disponible pour tester chaque version d'Eclipse, mais nous ne sommes pas à l'abri d'une bonne surprise dans les cinq ou six ans qui viennent. D'un cierge à l'autre, on conserve l'espoir.

    Par ailleurs, la dernière version du plug-in v.2.1.7 permettrait de débugger des sessions web service, d'après le changelog. Ce serait formidable ! Mais jusqu'ici aucune personne censée pouvoir nous éclairer n'a été fichu de nous indiquer la marche à suivre... et visiblement comme personne ne lit le changelog, personne n'était au courant quand on a posé la question.

    Enfin, certes Eclipse n'est pas si mal (quoiqu'un peu lourdingue), mais j'allume un autre cierge pour espérer qu'on puisse avoir un jour un plugin fonctionnant sous Visual Code, que je préfère, personnellement.

Reply
  • 0 in reply to Pierre P

    Pour être honnête, en 2023, les choses se sont améliorées depuis deux ans. Du moins sur certains aspects.
    - le processus de déconnexion de sessions orphelines est plus simple, plus fiable et plus efficace
    - s'il arrive encore que l'appel du debugger échoue, cela devient rare. Et dans ce cas, une deuxième tentative est toujours couronnée de succès.

    Le côté un peu vachard de mon post de l'époque est donc largement obsolète. Mais sur ce sujet du debugger, on a encore une belle marge de progression.

    Ainsi, le plugin Eclipse de Sage et les dernières versions d'Eclipse ne sont plus compatibles. A ma connaissance, la dernière version compatible d'Eclipse est la 2020-12 (4.18.0). Celle recommandée par Sage est la 2019-03, sans complexe.. Je n'ai pas de temps disponible pour tester chaque version d'Eclipse, mais nous ne sommes pas à l'abri d'une bonne surprise dans les cinq ou six ans qui viennent. D'un cierge à l'autre, on conserve l'espoir.

    Par ailleurs, la dernière version du plug-in v.2.1.7 permettrait de débugger des sessions web service, d'après le changelog. Ce serait formidable ! Mais jusqu'ici aucune personne censée pouvoir nous éclairer n'a été fichu de nous indiquer la marche à suivre... et visiblement comme personne ne lit le changelog, personne n'était au courant quand on a posé la question.

    Enfin, certes Eclipse n'est pas si mal (quoiqu'un peu lourdingue), mais j'allume un autre cierge pour espérer qu'on puisse avoir un jour un plugin fonctionnant sous Visual Code, que je préfère, personnellement.

Children
  • 0 in reply to Pierre P

    Bonsoir,

    Pour compléter cette prière, j'ai pu constater que l'utilisation directe du debug à travers un vpn ssl (du style forticlient) ne fonctionne pas.

    Pour le faire marcher, par contre, il est toujours possible d'utiliser eclipse en local (avec quelques ratés parfois), par exemple sur un tse

  • 0 in reply to Viseth

    Bonjour,

    Merci d’avoir utilisé Sage City,

    Au sujet de vos demandes d'amélioration produit, n'hésitez pas à saisir une idée d'amélioration dans la section dédiée ci dessous : www.sagecity.com/.../i

    Cordialement,

    Nicolas

  • +1 in reply to Viseth
    verified answer

    Bonjour,

    Le debugger X3 intégré à Eclipse fonctionne avec un proxy côté Syracuse:

    Il faut 2 choses:
    - ouvrir le port 9514 en TCP sur Syracuse pour que les runtimes X3 puisse faire le "debug triggered".

    - dans Eclipse, la perspective debug doit être configurée sur Prompt (ma recommendation) ou Always pour que la vue s'ouvre automatiquement.


    Pour information, avec la dernière version du plugin de Mars:
    https://plugin-x3.sagex3.com/safex3/studio/downloads/index.html

    - Il est possible de débugguer les Web Services SOAP

    - le service de proxy debug démarre automatiquement quand le projet Eclipse est ouvert, ce qui évite de devoir attacher en permanence:

    IMPORTANT: Avec les versions récentes du moteur X3 en V12 (et V11 je crois), il est impossible de connecter le debugger en direct sur le moteur X3 (le fameux port 10000).

    En effet, la connexion se faisait de manière anonyme, ce qui est un problème pour la sécurité. Cet écran de paramétrage ne doit donc plus être touché, car de toute façon, la connexion sera refusée.

    Enfin:

    - il est possible de se connecter en HTTPS, et même à travers un reserse proxy

    - les seules méthodes d'authentification possible sont Basic et SAGE ID.

  • 0 in reply to Bruno Gonzalez

    Merci Bruno, ces informations sont les bienvenues