Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/08/2007, 14h00   #1
Membre du Club
 
Inscription : décembre 2004
Messages : 116
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 116
Points : 59
Points : 59
Par défaut [Oracle Scheduler 10.2g ] Executer un .vbs ?

Bonjour, bonjour !

J'aimerais exécuter un programme .vbs (Visual Basic Script) à l'aide de Oracle Scheduler.

J'ai vu dans la documentation que ce type de fichier n'était pas pris en compte, alors j'ai essayé de l'appeler à partir d'un .bat.

Lorsque je lance mon job, il semble tourner dans le vide. (J'ai même essayé un classique "Hello" que je redirige dans un fichier .txt pour avoir une trace de mon exécution mais toujours rien à l'horizon )

Quelqu'un a t il déjà rencontré ce problème ?

Merci d'avance

Stéphane
sleigh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 14h02   #2
Membre éclairé
 
Inscription : novembre 2002
Messages : 533
Détails du profil
Informations forums :
Inscription : novembre 2002
Messages : 533
Points : 359
Points : 359
quid de la question peut être bete, mais pq vouloir schéduler ton script vbs au niveau du noyau Oracle.

Il semble bcq plus adapté de vouloir le planifier au niveau OS ?
__________________
PpPool
PpPool est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 14h08   #3
Membre du Club
 
Inscription : décembre 2004
Messages : 116
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 116
Points : 59
Points : 59
L'objectif est de récupérer les traces (des tables oracle) pour les restituer sur un portail à l'aide de APEX (Oracle Application Express).

PS : Je suis super impressionné par ta rapidité
sleigh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 14h43   #4
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
c'est pas plus simple de créer une DIRECTORY pour autoriser l'accés aux logs et utiliser UTL_FILE ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 14h57   #5
Membre du Club
 
Inscription : décembre 2004
Messages : 116
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 116
Points : 59
Points : 59
Peux tu me dire ce qu'est une directory ?

J'utiliserais directement les tables de logs utilisées par Oracle Scheduler (exemple : USER_SCHEDULER_JOB_RUN_DETAILS, DBA_SCHEDULER_RUNNING_JOBS, ...).

L'accès aux logs ne pose pas problème, mais c'est plutôt de pouvoir exécuter un .vbs par oracle scheduler.
sleigh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 15h19   #6
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
recherche utl_file
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 15h36   #7
Membre du Club
 
Inscription : décembre 2004
Messages : 116
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 116
Points : 59
Points : 59
Merci pour l'info mais je ne pense pas que cela puisse m'être utile dans ce cas précis (execution d'un fichier .vbs ou par l'intermediaire d'un .bat et exploitation direct des logs des tables Oracle pour les restituer via Oracle Application Express).
sleigh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 15h37   #8
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
bah en fait, c'est une manière de faire ce que tu veux sans passer par un .vbs
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 15h47   #9
Membre du Club
 
Inscription : décembre 2004
Messages : 116
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 116
Points : 59
Points : 59
Si j'ai bien compris, tu me proposes d'executer mon script .vbs au niveau OS et de constituer des logs grace à UTL_FILE que je chargerais par la suite dans des tables Oracle?

Le souci c'est que je n'ai pas que des .vbs à executer, j'ai aussi des procédures sql .
sleigh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 15h50   #10
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
Pour configurer un external job avec 10.2.0.2 sous Windows, il faut d'abord vérifier que:
  • le service Windows OracleJobScheduler<instance> est bien démarré
  • le compte Oracle qui crée le job a le privilège CREATE EXTERNAL JOB.

Ensuite il faut être sûr qu'il n'y aucune erreur à la création et à l'exécution du job (vérifiez aussi l'alert.log de l'instance).

Exemple:

Créer le script Windows:

Code :
1
2
>type d:\test.bat
echo "test.bat OK" > d:\test.log
Exécuter avec le bon compte Oracle:
Code :
1
2
3
4
5
6
7
8
9
10
11
 
dev001> begin
  2  dbms_scheduler.create_job(job_name=>'TESTJOB',
  3  job_type=>'executable',
  4  job_action=>'d:\test.bat',
  5  enabled=>TRUE);
  6  dbms_scheduler.run_job('TESTJOB');
  7  end;
  8  /
 
PL/SQL procedure successfully completed.
Et vérifier:
Code :
1
2
3
 
>type d:\test.log
"test.bat OK"
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 15h54   #11
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Citation:
Envoyé par sleigh
Si j'ai bien compris, tu me proposes d'executer mon script .vbs au niveau OS et de constituer des logs grace à UTL_FILE que je chargerais par la suite dans des tables Oracle?

Le souci c'est que je n'ai pas que des .vbs à executer, j'ai aussi des procédures sql .
mais non, tu exécutes tes SQL qui générent des logs que tu liras via UTL_FILE... ou alors j'ai pas compris à quoi sert le VBS
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 16h30   #12
Membre du Club
 
Inscription : décembre 2004
Messages : 116
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 116
Points : 59
Points : 59
Pierre, j'avais déjà eu l'occasion de tester cela mais sais tu si on peux appeler un .vbs (à partir d'un .bat) car il semble tourner dans le vide indéfiniment.

OraFrance, mes fichiers .vbs font un bon nombre de test, de traitement avant d'alimenter mes tables (sql_loader). J'ai en plus d'autres procédures sql (indépendandes de mes fichiers .vbs) qui alimentent d'autres tables suite à l'execution de mes fichiers .vbs.
sleigh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 16h40   #13
Membre du Club
 
Inscription : décembre 2004
Messages : 116
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 116
Points : 59
Points : 59
J'ai retenté d'executer mon .bat qui lance mon .vbs et il semblerait qu'il attende un signal pour partir (statut waiting dans le session browser sous Toad)

Si cela peut mettre quelqu'un sur une piste ...
sleigh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 16h41   #14
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
dans v$session_wait tu vois quoi ? Si ça se trouve c'est juste une requête qui rame
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 16h48   #15
Membre du Club
 
Inscription : décembre 2004
Messages : 116
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 116
Points : 59
Points : 59
En fait il y a plusieurs lignes (mais je pense que ce sont mes différents tests que j'ai mal du supprimer). Il y a notamment "JS external job" comme event.
Ne sachant pas trop exploité cette vue, je ne sais pas trop quoi regarder.
sleigh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 16h50   #16
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
tu cherches ta session Oracle (le SID du brower de session) et tu recherches la ligne de v$session_wait correspondante. Vérifies bien que tu as assez de process pour les jobs
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2007, 17h03   #17
Membre éclairé
 
Inscription : novembre 2002
Messages : 533
Détails du profil
Informations forums :
Inscription : novembre 2002
Messages : 533
Points : 359
Points : 359
Je reste persuadé que tu as pris le "taureau à l'envers"

ton script vbs doit avoir besoin de s'appuyer sur la couche système pour se lancer, le schéduler d'oracle doit s'y mélanger les pinceaux

du vbs c'est n'y plus ni moins que du shell windows non ?

Ne shédule au niveau Oracle que ce qui doit se faire au niveau noyau. Pour ma part, j'ai du mal à saisir les personnes qui cherchent à lancer des process externes dans un job oracle. pour moi, ce n'est pas à oracle de faire çà mais à l'OS

tu peux très bien dans un .bat (job système), lancer :
ton script vbs
ensuite lancer tes ordres SQL par une simple ligne de commande du style
sqlplus xxxx/xxxx@sid @c:\mydirectory\myfile.sql %myparam%;

tu as des tas d'exemples sur DVP

au vu des infos que tu as fourni cela me semble être quand même la piste la plus simple à suivre

pourquoi faire simple quand on peut faire compliqué
__________________
PpPool
PpPool est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2007, 10h44   #18
Membre du Club
 
Inscription : décembre 2004
Messages : 116
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 116
Points : 59
Points : 59
Je confirme que dans ma table v$session_wait, mon processus est bien en attente de quelque chose mais je suis incapable de dire quoi.

Rien ne tourne sur ma machine donc je pense que c'est pas la disponibilité mémoire qui fait défaut.
(Au passage, comment fait-on pour savoir il y a assez de process pour les jobs ? )

PpPool, je suis d'accord avec toi pour tes propos (et tu vas peut-être me prendre pour un gars super borné) mais c'est ce qu'on a mis en avant et vendu au client.

Citation:
Envoyé par sleigh :
Merci pour l'info mais je ne pense pas que cela puisse m'être utile dans ce cas précis (execution d'un fichier .vbs ou par l'intermediaire d'un .bat et exploitation direct des logs des tables Oracle pour les restituer via Oracle Application Express).

Alors d'un coté, on a des scripts qui se lancent bien au niveau OS mais dont l'exploitation des logs est manuelle et de l'autre coté, on a, pour le moment, des soucis à lancer des scripts .bat qui appellent ces scripts .vbs mais avec une simplicité et une exhaustivité des restitutions des logs par Oracle.

La grande question qui reste en suspend : est-ce possible de lancer ce fichier .bat qui appelle ce de .vbs
sleigh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2007, 14h07   #19
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
Que fait en détail le .vbs ? Est-ce qu'il utilise des resources graphiques ?
Est-ce que le le .bat qui appelle le .vbs peut s'exécuter sans problème à partir du compte Windows qui est propriétaire de l'instance Oracle ?
Est-ce que vous avez essayé de faire un .bat et un .vbs le plus simple possible et de vérifier son lancement en tant que job externe ?
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2007, 14h33   #20
Membre du Club
 
Inscription : décembre 2004
Messages : 116
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 116
Points : 59
Points : 59
Le .vbs n'utilise pas de ressources graphiques, il réalise des tests d'existence de fichier dans un répertoire avant de lancer un sql loader.
Ca c'est le fichier .vbs que j'aimerais faire fonctionner mais durant mes tests, je demande juste de me faire un simple "bonjour" qui sera redirigé vers un fichier .txt

J'ai déjà testé d'executer ce .bat de test qui fonctionne parfaitement en le lançant manuellement à partir du compte Windows qui est propriétaire de l'instance Oracle mais lorsqu'il s'agit de le lancer via le scheduler, il ne me redonne jamais la main.
Il semble attendre qqchose (cf statut "waiting" dans v$session_wait).
sleigh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h06.


 
 
 
 
Partenaires

Hébergement Web