Après windows pour les nuls, voici PB pour les bons (ou presque).

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 07-09-2018 09:13:24

GuiguixX  
Membre Geek
Date d'inscription: 16-11-2015
Messages: 23
Pépites: 132
Banque: 0

Ecriture dans un fichier de log

Bonjour à toutes et tous,

Sur mon projet nous sommes en PB10.5.
Je rencontre le problème suivant : nous avons un exe batch de l'application qui sert à générer des fichiers d'extractions de données en BDD dans un répertoire paramétrable. Ce batch (edi.exe) peut être exécute manuellement ou automatiquement via un ordonnanceur.

Lors de l’exécution du batch nous écrivons dans un fichier de log les exécutions du batch (heure de début, fichier générés, lignes traitées, heure de fin). Ci-dessous un exemple :

Code:

24/08/2018 14:40:21 - Début du traitement
#FIN -----------------------------------------------------
24/08/2018 14:41:01 - Objets terminé. Nbre ECM traité(s) : 1. Nbre objets : 2179 Tracking terminé. Nbre ECM traité(s) : 1. Nbre tracking : 19.Techniques terminé. ECM traité(s) : 1. Nbr traités : 2.Finances terminé. ECM traité(s) : 1. Nbr traités : 45
#FIN -----------------------------------------------------
24/08/2018 14:41:01 - Fin du traitement
#FIN -----------------------------------------------------

Le problème que je rencontre c'est que le batch n'écrit dans ce fameux fichier de log que lors d'une exécution manuelle, quand il passe par l'ordonnanceur Windows il n'y a pas d'écriture (le batch est lancé tout les jours à 4h du matin). Par contre en automatique les extractions sont bien générés dans la nuit.

Avez-vous une idée pour corriger ce problème ?

Pour info :
- Version PB : PB10.5
- Serveur ou est déployé le batch : Windows Server 2008 R2 Standard
- Le batch est lancé par l'ordonnanceur de Windows Serveur avec comme utilisateur : Administrateur qui a tous les droits (écriture, lecture, exécutions)

En vous remerciant par avance pour les réponses.

Hors ligne

 

#2 15-09-2018 08:22:20

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: Ecriture dans un fichier de log

Bonjour,

Dans les paramétrages de la tâche, il te suffit de spécifier un compte utilisateur (qui a les droits en écriture sur le fameux répertoire de log) au lieu et place du compte système par défaut.

Hors ligne

 

#3 17-09-2018 16:20:05

GuiguixX  
Membre Geek
Date d'inscription: 16-11-2015
Messages: 23
Pépites: 132
Banque: 0

Re: Ecriture dans un fichier de log

Bonjour,

Merci pour la première réponse, mais justement c'est le cas l'ordonnanceur Windows Serveur lance le .exe avec l'utilisateur admin qui a tous les drotis sur le répertoire de log, l'exe et le fichier de log...
Ce problème est bizarre car en manuel tout fonctionne normalement le fichier de log du batch est bien alimenté.

Hors ligne

 

#4 18-09-2018 11:08:27

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: Ecriture dans un fichier de log

Bonjour,

Effectivement, j'ai lu un peu vite ton post. Tu l'avais précisé.

En fait le problème depuis l'introduction de Vista (et Windows server 2008), c'est l'UAC (User Account Control ) en fait tu n'es jamais réellement administrateur sans faire une demande d'élévation de privilège.   

Il me semble que c'est seulement à partir de la version 11 de PB que l'on peut choisir dans les options de compilation dans l'onglet security les options de "manifest" et le niveau d’exécution de ton appli pour être compatible avec l'UAC.

Dans le cas contraire, ton programme s’exécute sans privilège et les répertoires sont virtualisés vers C:\Users\<name>\AppData\Local\VirtualStore.

Tu peux vérifier que ton journal de log ne se trouve pas dans le virtualstore par hasard ?

Tu peux aussi essayer pour tester de mettre un droit contrôle total pour tous les utilisateurs sur le répertoire des logs ?

J’essaierai également de mettre mon programme en mode de compatibilité XP pour voir (permettre d'écrire en tant qu'administrateurs sans élévation de privilège).

Hors ligne

 

#5 19-09-2018 15:38:07

GuiguixX  
Membre Geek
Date d'inscription: 16-11-2015
Messages: 23
Pépites: 132
Banque: 0

Re: Ecriture dans un fichier de log

Bonjour,

Je te remercie pour les infos je vais vérifier ça aussi.

En fait je me rends compte que je suis pas clair dans mon explication...

Le fichier de log existe bien dans le bon répertoire, sauf que je n'ai aucune logs des lancements automatiques (ordonnanceur Windows), par contre un utilisateur lance le batch manuellement pas de soucis l'écriture se fait bien dans le fichier de log existant (Cf. exemple de log dans mon premier message).

Ce qui est bizarre c'est qu'en BDD j'ai bien la trace des logs du lancement automatiques (j'écris une log physique dans un fichier et la même log en BDD par sécurité), et que le lancement automatique s'exécute parfaitement, puisque mes fichiers d'extractions sont généré.

En fait mon vrai soucis vient vraiment du fait que l'écriture ne se fait pas par l'ordonnanceur et je ne vois pourquoi l'exe n'arrive pas à écrire dans le fichier en auto alors qu'en manuel aucun soucis.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22