Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 10 sur 10
  1. #1
    Membre à l'essai Avatar de jodan33
    Homme Profil pro
    Debug Appli Delphi
    Inscrit en
    mars 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Debug Appli Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2008
    Messages : 71
    Points : 23
    Points
    23

    Par défaut Service démarré mais qui ne fait rien

    Bonjour ,
    Voici un moment que je n'ai pas posté sur le forum.
    Bon j'expose mon problème, je fais du support pour une entreprise qui édite des applications dans le médical.
    En fait je détecte les problèmes dans le source, j'analyse où se situent les problèmes et quand j'ai trouvé où ça coince dans le source, je donne mon avis au développeur, et éventuellement lui indique une solution.
    La difficulté est d'intervenir sur du code que l'on n'a pas développe soi même, et du coup de ne plus coder, bref.
    Là j'ai un souci sur une appli qui utilise un service pour envoyer les données patients dans une autre application.
    Le service est démarré mais il ne se passe plus rien. On peut redémarrer le service et du coup les données passent, mais bon... Un petit moment après le service est de nouveau dans l'état : "je suis démarré mais je traite plus".

    Voila je ne sais pas si cela est clair mais en tout cas merci par avance.

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    septembre 2008
    Messages
    3 379
    Détails du profil
    Informations forums :
    Inscription : septembre 2008
    Messages : 3 379
    Points : 5 759
    Points
    5 759

    Par défaut

    Citation Envoyé par jodan33 Voir le message
    La difficulté est d'intervenir sur du code que l'on n'a pas developpé soit meme
    Alors imagine-nous qui n'avons pas de code du tout sous les yeux

    Mais le problème pourrait venir de la boucle Execute qui attend indéfiniment un ordre qui ne vient pas. (un mutex global jamais signalé par exemple)

  3. #3
    Membre à l'essai Avatar de jodan33
    Homme Profil pro
    Debug Appli Delphi
    Inscrit en
    mars 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Debug Appli Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2008
    Messages : 71
    Points : 23
    Points
    23

    Par défaut Oui

    Bonjour,

    Oui en effet je suis d'accord, mais je ne souhaite pas fournir du code pour l'instant sans avoir au moins un peu déblayé une piste...

  4. #4
    Expert Confirmé
    Avatar de Ph. B.
    Homme Profil pro Philippe
    Inscrit en
    avril 2002
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2002
    Messages : 1 327
    Points : 3 804
    Points
    3 804

    Par défaut

    Bonjour,
    Citation Envoyé par jodan33 Voir le message
    Oui en effet je suis d'accord , mais je veux pas fournir du code pour l'instant sans avoir au moins un peux déblayer une piste..
    Si j'en crois le début de la discussion, le service fonctionne très partiellement (au redémarrage du service, puis s'arrête).
    Sans accès au code (je peux comprendre pour des raisons de confidentialités ), je suggère de placer des instructions de trace à différents endroits du programme (écriture d'informations dans un fichier texte avec les valeurs qui semblent pertinentes)...
    Le développeur doit bien avoir une unité avec ce genre de routines. Quelques options de compilation et elles peuvent même être intégrées ad vitam aeternam au source.
    Philippe.

  5. #5
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    septembre 2008
    Messages
    3 379
    Détails du profil
    Informations forums :
    Inscription : septembre 2008
    Messages : 3 379
    Points : 5 759
    Points
    5 759

    Par défaut

    Citation Envoyé par Ph. B. Voir le message
    Le développeur doit bien avoir une unité avec ce genre de routines. Quelques options de compilation et elles peuvent même être intégrées ad vitam aeternam au source.
    Ou simplement TService.LogMessage pour l'ajout au journal Windows

  6. #6
    Expert Confirmé
    Avatar de Ph. B.
    Homme Profil pro Philippe
    Inscrit en
    avril 2002
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2002
    Messages : 1 327
    Points : 3 804
    Points
    3 804

    Par défaut

    Citation Envoyé par Andnotor Voir le message
    Ou simplement TService.LogMessage pour l'ajout au journal Windows
    Je suis pour ainsi dire confus....
    J'ai déjà implémenté des services, mais cette fonction m'avait complètement échappé (et comme j'ai ma petite unité adéquate...) !
    Il faut quand même que les journaux soient paramétrés pour enregistrer les événements, ce me semble...
    En tous cas, merci pour ce rappel.
    Philippe.

  7. #7
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    septembre 2008
    Messages
    3 379
    Détails du profil
    Informations forums :
    Inscription : septembre 2008
    Messages : 3 379
    Points : 5 759
    Points
    5 759

    Par défaut

    Citation Envoyé par Ph. B. Voir le message
    Il faut quand même que les journaux soient paramétrés pour enregistrer les événements, ce me semble...
    Ça n'est pas obligatoire, mais si tu ne le fais pas le message commencera par :
    La description de l’ID d’événement 0 dans la source MonProg est introuvable. Le composant qui a déclenché cet événement n’est pas installé sur l’ordinateur local ou l’installation est endommagée. Vous pouvez installer ou réparer le composant sur l’ordinateur local.

    Si l’événement provient d’un autre ordinateur, les informations d’affichage doivent être enregistrées avec l’événement.

    Les informations suivantes étaient incluses avec l’événement*:

    Mon message
    Perso, je le fais pas ! Trop emmerdant. Créer des fichiers par langue, les compiler avec MessageCompiler (création MSGxxxxx.bin), les intégrer en ressources plus des entrées dans la base des registres... (MS pouvait pas faire plus simple ) Mon seul essai fonctionnait bien sous XP et 7 mais se soldait par une plantée sous 2003. J'ai vite aborté...

  8. #8
    Membre à l'essai Avatar de jodan33
    Homme Profil pro
    Debug Appli Delphi
    Inscrit en
    mars 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Debug Appli Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2008
    Messages : 71
    Points : 23
    Points
    23

    Par défaut Merci

    Bonjour,
    Merci à Andnotor et Ph.B pour ces pistes .
    Je vais suggerer à mes collegues de mettre en place ces traces .
    Nous avons egalement commencé à verifier ce qui se passe au niveau d'Oracle , car l'appli concerné sert de passerelle entre deux bases de données.
    Nous utilisons cette requette:
    Code sql :
    1
    2
    3
    4
    5
    SELECT swn.SQL_TEXT
        FROM V$SQLTEXT_WITH_NEWLINES swn, v$session s
       WHERE swn.HASH_VALUE = S.SQL_HASH_VALUE
         AND lower(S.PROGRAM)='hexa2optrait.exe'
    ORDER BY PIECE

    Le service utilise l'exe hexa2optrait.exe

    Quand le service est démarré mais "bloqué" on voit que la requete en cours vise une table vide.
    Je ne pense pas que cela ai une incidence j'aurai aimé avoir votre avis à ce sujet.

  9. #9
    Expert Confirmé
    Avatar de Ph. B.
    Homme Profil pro Philippe
    Inscrit en
    avril 2002
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2002
    Messages : 1 327
    Points : 3 804
    Points
    3 804

    Par défaut

    Citation Envoyé par jodan33 Voir le message
    Bonjour,
    Merci à Andnotor et Ph.B pour ces pistes .
    Je vais suggerer à mes collegues de mettre en place ces traces .
    Nous avons egalement commencé à verifier ce qui se passe au niveau d'Oracle , car l'appli concerné sert de passerelle entre deux bases de données.
    Nous utilisons cette requette:
    Code sql :
    1
    2
    3
    4
    5
    SELECT swn.SQL_TEXT
        FROM V$SQLTEXT_WITH_NEWLINES swn, v$session s
       WHERE swn.HASH_VALUE = S.SQL_HASH_VALUE
         AND lower(S.PROGRAM)='hexa2optrait.exe'
    ORDER BY PIECE

    Le service utilise l'exe hexa2optrait.exe

    Quand le service est démarré mais "bloqué" on voit que la requete en cours vise une table vide.
    Je ne pense pas que cela ai une incidence j'aurai aimé avoir votre avis à ce sujet.
    C'est une supposition au vu des quelques éléments fournis, mais il me semble que l'exécutable est un des moyens de remplir directement ou non la table (cf. clause WHERE), peut être même le seul dans votre configuration ; aussi, dès qu'il se bloque, la table n'est pas (ou plus) alimentée...
    Philippe.

  10. #10
    Membre à l'essai Avatar de jodan33
    Homme Profil pro
    Debug Appli Delphi
    Inscrit en
    mars 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Debug Appli Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2008
    Messages : 71
    Points : 23
    Points
    23

    Par défaut Pbme non reproduit mais surement en latence

    Bonjour,

    Le probleme n'est pas réapparu depuis que j'ai redémarré le service.
    Cependant je sais qu'il existe et se manifestera de nouveaux.
    Pour la requette en fait elle permet juste de voir qu'elle sont les requettes uitilsées par l'interface pour envoyer les données d'une base à une autre .
    Et on a vu qu apparament c'est toujours la meme qui bloque .
    Nous allons travailler autour de cette requette surement la supprimé car ell est pratiquement inutile.
    c'est un simple : select * from tableperiodic;

    en tout cas nous avons une piste meme si ce n'est pas terminé , merci a vous tous.


Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •