IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

[Oracle Scheduler 10.2g ] Executer un .vbs ?


Sujet :

Oracle

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 116
    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

  2. #2
    Membre éclairé
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Par défaut
    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 ?

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 116
    Par défaut
    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é

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    c'est pas plus simple de créer une DIRECTORY pour autoriser l'accés aux logs et utiliser UTL_FILE ?

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 116
    Par défaut
    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.

  6. #6
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    recherche utl_file

  7. #7
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 116
    Par défaut
    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).

  8. #8
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    bah en fait, c'est une manière de faire ce que tu veux sans passer par un .vbs

  9. #9
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 116
    Par défaut
    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 .

  10. #10
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >type d:\test.bat
    echo "test.bat OK" > d:\test.log
    Exécuter avec le bon compte Oracle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    >type d:\test.log
    "test.bat OK"

  11. #11
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    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

  12. #12
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 116
    Par défaut
    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.

  13. #13
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 116
    Par défaut
    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 ...

  14. #14
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    dans v$session_wait tu vois quoi ? Si ça se trouve c'est juste une requête qui rame

  15. #15
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 116
    Par défaut
    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.

  16. #16
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    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

  17. #17
    Membre éclairé
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Par défaut
    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é

  18. #18
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 116
    Par défaut
    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.

    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

  19. #19
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    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 ?

  20. #20
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 116
    Par défaut
    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).

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. difficulté a executer code vbs dans pas xhtml
    Par rtchi dans le forum VBScript
    Réponses: 2
    Dernier message: 30/08/2010, 14h01
  2. ASP ==> executer un vbs
    Par baniack dans le forum ASP
    Réponses: 1
    Dernier message: 13/07/2009, 21h21
  3. [Oracle 9iR2][PL/SQL] EXECUTE IMMEDIATE USING
    Par mainecoon dans le forum Oracle
    Réponses: 4
    Dernier message: 08/02/2007, 19h08
  4. Executer script VBS avec requette http
    Par kevain_09 dans le forum VBScript
    Réponses: 1
    Dernier message: 30/09/2006, 21h33
  5. [VB6-MSADO 2.5 - Oracle 9.2] Erreur Execution 80004005
    Par GyLes dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/02/2006, 18h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo