|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : décembre 2004 Messages : 116 ![]() |
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 |
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Inscription : novembre 2002 Messages : 533 ![]() |
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 |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : décembre 2004 Messages : 116 ![]() |
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é
|
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
c'est pas plus simple de créer une DIRECTORY pour autoriser l'accés aux logs et utiliser UTL_FILE ?
|
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : décembre 2004 Messages : 116 ![]() |
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. |
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
recherche utl_file
|
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : décembre 2004 Messages : 116 ![]() |
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).
|
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
bah en fait, c'est une manière de faire ce que tu veux sans passer par un .vbs
|
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Inscription : décembre 2004 Messages : 116 ![]() |
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 .
|
|
|
00
|
|
|
#10 | ||||
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Pour configurer un external job avec 10.2.0.2 sous Windows, il faut d'abord vérifier que:
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 :
Code :
|
||||
|
|
00
|
|
|
#11 | |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Citation:
|
|
|
|
00
|
|
|
#12 |
|
Membre du Club
![]() Inscription : décembre 2004 Messages : 116 ![]() |
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. |
|
|
00
|
|
|
#13 |
|
Membre du Club
![]() Inscription : décembre 2004 Messages : 116 ![]() |
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 ...
|
|
|
00
|
|
|
#14 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
dans v$session_wait tu vois quoi ? Si ça se trouve c'est juste une requête qui rame
|
|
|
00
|
|
|
#15 |
|
Membre du Club
![]() Inscription : décembre 2004 Messages : 116 ![]() |
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. |
|
|
00
|
|
|
#16 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
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
|
|
|
00
|
|
|
#17 |
|
Membre éclairé
![]() Inscription : novembre 2002 Messages : 533 ![]() |
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 |
|
|
00
|
|
|
#18 | |
|
Membre du Club
![]() Inscription : décembre 2004 Messages : 116 ![]() |
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:
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 |
|
|
|
00
|
|
|
#19 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
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 ? |
|
|
00
|
|
|
#20 |
|
Membre du Club
![]() Inscription : décembre 2004 Messages : 116 ![]() |
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). |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com