Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > Delphi > Langage
Langage Tout ce qui concerne le langage (POO, syntaxe, message d'erreur...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 10/12/2012, 10h40   #1
jodan33
Membre à l'essai
 
Avatar de jodan33
 
Homme
Debug Appli Delphi
Inscription : mars 2008
Messages : 66
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 46
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : mars 2008
Messages : 66
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.
jodan33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2012, 10h51   #2
Andnotor
Rédacteur/Modérateur
 
Avatar de Andnotor
 
Inscription : septembre 2008
Messages : 2 857
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 2 857
Points : 5 967
Points : 5 967
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)
__________________
Mes tutoriels Delphi
Andnotor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2012, 12h32   #3
jodan33
Membre à l'essai
 
Avatar de jodan33
 
Homme
Debug Appli Delphi
Inscription : mars 2008
Messages : 66
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 46
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : mars 2008
Messages : 66
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...
jodan33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2012, 13h52   #4
Ph. B.
Expert Confirmé
 
Avatar de Ph. B.
 
Homme Philippe
Inscription : avril 2002
Messages : 1 032
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 46
Localisation : France, Haute Garonne (Midi Pyrénées)

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

Informations forums :
Inscription : avril 2002
Messages : 1 032
Points : 2 665
Points : 2 665
Envoyer un message via ICQ à Ph. B. Envoyer un message via Skype™ à Ph. B.
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.
Ph. B. est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/12/2012, 14h49   #5
Andnotor
Rédacteur/Modérateur
 
Avatar de Andnotor
 
Inscription : septembre 2008
Messages : 2 857
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 2 857
Points : 5 967
Points : 5 967
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
__________________
Mes tutoriels Delphi
Andnotor est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/12/2012, 16h29   #6
Ph. B.
Expert Confirmé
 
Avatar de Ph. B.
 
Homme Philippe
Inscription : avril 2002
Messages : 1 032
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 46
Localisation : France, Haute Garonne (Midi Pyrénées)

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

Informations forums :
Inscription : avril 2002
Messages : 1 032
Points : 2 665
Points : 2 665
Envoyer un message via ICQ à Ph. B. Envoyer un message via Skype™ à Ph. B.
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.
Ph. B. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2012, 17h02   #7
Andnotor
Rédacteur/Modérateur
 
Avatar de Andnotor
 
Inscription : septembre 2008
Messages : 2 857
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 2 857
Points : 5 967
Points : 5 967
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 :
Citation:
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é...
__________________
Mes tutoriels Delphi
Andnotor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2012, 09h23   #8
jodan33
Membre à l'essai
 
Avatar de jodan33
 
Homme
Debug Appli Delphi
Inscription : mars 2008
Messages : 66
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 46
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : mars 2008
Messages : 66
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.
jodan33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2012, 21h43   #9
Ph. B.
Expert Confirmé
 
Avatar de Ph. B.
 
Homme Philippe
Inscription : avril 2002
Messages : 1 032
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 46
Localisation : France, Haute Garonne (Midi Pyrénées)

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

Informations forums :
Inscription : avril 2002
Messages : 1 032
Points : 2 665
Points : 2 665
Envoyer un message via ICQ à Ph. B. Envoyer un message via Skype™ à Ph. B.
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.
Ph. B. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2012, 11h43   #10
jodan33
Membre à l'essai
 
Avatar de jodan33
 
Homme
Debug Appli Delphi
Inscription : mars 2008
Messages : 66
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 46
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : mars 2008
Messages : 66
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.

jodan33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h05.


 
 
 
 
Partenaires

Hébergement Web