[C] CRONTAB connexion ORACLE

Fermé
Jérôme Janvier - 27 févr. 2007 à 10:10
 jérôme J - 28 févr. 2007 à 14:55
Bonjour a tous

Je vous envoi ce message parce que je sui face a mon ignorance vi a vi de crontab

En fait, je doit réaliser un programe en C , qui se connecte a oracle et lance un traitement sur la base. Ca c'est fait et ca fonctionne.

Le problème, c'est que je doit le faire s'exécuter dans un cron
le cron s'éxécute bien, par contre au moment de la connexion à oracle, oracle me signale une erreur 12154, "mauvaise résolution de tnsnames.ora"
J'ai vérifié tous les tnsnames.ora de la machine (un AIX) et tous contiennent les bons paramètres et son corrects.
Ce que je ne sait pas, c'est lequel est utilisé pas cron, s'il en utilise un de ceux existants, ou s'il faut installer un client oracle pour le cron.

Merci bien de vos lumieres.
Cordialement .

Jérôme J
A voir également:

1 réponse

Jérôme,
Peux-tu poster:
1- la ligne de ton programme C qui lance la connexion à Oracle
2- la ligne de ton cron qui lance ton programme C
-1
Jérôme Janvier
27 févr. 2007 à 10:44
la ligne du C, j'utilise OCI avec un include de "oci.h" au début du fichier
OCIServerAttach( S_srvhp, S_errhp, (text *)psz_Serveur,strlen((char *)psz_Serveur), (ub4) OCI_DEFAULT)

la ligne du cron
# crontab resynchro tous les matin a 7 heure
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /oracle/ora_8.1.7/rdbms/demo/resynchro

( pour mes test le crontab est config pour se lancer tt les 5 mins)
0
Résumons :
-"resynchro" lancé directement = ça marche
-"resynchro" lancé depuis un cron = erreur connexion à la base

Est-ce le même user qui lance resynchro en direct et qui est propriétaire du cron?
Y a t-il dans le "resynchro" indication d'un chemin relatif, introuvable depuis le home du lanceur de cron?

Seule certitude : il n'y a rien de particulier à installer pour que le cron marche. Le cron ne fait QUE lancer un programme à la place d'un utilisateur.
0
jérôme J > ARNAUD
28 févr. 2007 à 14:53
Tu as bien saisi

Le fait d'utiliser le cron de l'utilisateur "oracle" (le propriétaire et celui avec lequel ja fait les tests manuels) ne change rien

Si je lance l'exécutable manuellement à partir d'un chemin quelconque, cela fonctionne...
0
Quel utilisateur lance le cron?
0