Announcement

Collapse
No announcement yet.

Ereignisbasierter Scheduler

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ereignisbasierter Scheduler

    Folgender ereignisbasierter Schedule lässt sich nicht erstellen.

    Code:
    BEGIN
        dbms_scheduler.create_event_schedule (
            schedule_name   => 'alf.ereignis_schedule',
            start_date            => SYSTIMESTAMP,
            event_condition   => 'tab.user_data.object_owner = ''ALF'' AND tab.user_data.event_name = ''FILE_ARRIVAL'' AND extract hour from tab.user_data.event_timestamp < 18',
            queue_spec        =>  'mein_event_q');
    END;
    /
    Fehlerausgabe:
    BEGIN
    *
    FEHLER in Zeile 1:
    ORA-24085: Vorgang nicht erfolgreich, Queue MEIN_EVENT_Q ist ungültig
    ORA-06512: in "SYS.DBMS_ISCHED", Zeile 99
    ORA-06512: in "SYS.DBMS_SCHEDULER", Zeile 413
    ORA-06512: in Zeile 2
    Zeitbasierende Schedules werden aber erfolgreich angelegt.

    Oracle läuft in der Version 10.2.0.5.0 unter Windows XP.

    Hat jemand eine Idee, woran die Erstellung scheitert?

    Gruss kuemmelchen

  • #2
    schau mal in
    Code:
    dba_scheduler_schedules
    , ob "mein_event_q" da ist.
    Vlt auf Groß/Kleinschreibung achten....
    Gruß, defo

    Comment


    • #3
      Mal nachgeschlagen, queue ist ungültig, also da, aber invalid.

      ORA-24085: operation failed, queue string is invalid
      Cause: An attempt was made to enqueue, dequeue or administer a queue which is invalid. This could have occured because the payload type of the queue's queue table was dropped.
      Action: Drop the queue table setting the force option to true.

      Falls es nicht nachvollziehbar ist, warum die Queue invalid ist, hier ein Link, der vielleicht weiterhilft:
      http://www.dbas-oracle.com/2011/10/u...opagation.html
      Gruß, defo

      Comment


      • #4
        Ereignisbasierter Scheduler

        Die Idee ist ein ereignisbasierten Job zu generieren, der gestartet wird, wenn eine Datei (ereignis.txt) dem System hinzugefügt wird.

        Der Fehler ORA-24085 erscheint zwar nicht mehr, dafür aber nun der Fehler ORA-00904: "TAB"."USER_DATA"."EVENT_TIMESTAMP": ungültiger Bezeichner.

        Zum besseren Verständnis füge ich den Quellcode mit den entsprechenden Ausgaben von SQL*Plus bei.

        Ich hoffe, dass jemand eine Idee zum Beheben des Fehlers hat.

        kuemmelchen
        Attached Files

        Comment


        • #5
          Hab kein 10er Oracle hier.
          Was geschieht, wenn Du [HIGHLIGHT=SQL] SELECT SYSTIMESTAMP FROM DUAL;[/HIGHLIGHT] ausführst?
          Hast Du schon mal invalid objects aller(!) direkt betroffenen und system user kontrolliert?
          Was sagt
          Code:
          descr  sys.scheduler$_event_info
          ? Was sagt es, wenn es als user aq aufgerufen wird?
          Gruß, defo

          Comment


          • #6
            Nun bin ist soweit gekommen, dass das kein Fehler auftritt (siehe Anhang).

            Nach dem Einfügen der Datei: ereignis.txt in das Verzeichnis c:\tim können die Daten der Tabelle t_ereignis_ex gelesen werden. Die Tabelle t_ereignis enthält aber keine Daten. Wird die Prozedur p_ereignis manuell gestartet, so werden die Daten aus der Tabelle t_ereignis_ex in die Tabelle t_ereignis eingefügt.

            Im Momoment habe ich keine Idee weiter, warum der definierte Job nicht ausgelöst wird. Für Hinweise und Anregungen wäre ich dankbar.

            kuemmelchen
            Attached Files

            Comment


            • #7
              Ich kämpfe immer noch an meinem ereignisbasierten Job. Leider startet er immer noch nicht.

              Aufgabe: Wenn die Datei ereignis.txt in das Verzeichnis c:\tim kopiert wird, so soll der ereignisbasierte Job: EREIGNIS_JOB gestartet werden. Die ausführbare Datei: voll_expdp.bat soll einen Export der Datenbank durchführen.
              Das Ganze soll mit Oracle 10.2.0.5.0 unter Windows XP laufen.

              Anmerkung: Die Ausführung als zeitbasierten Job wird ohne Fehler durchgeführt.

              Als Anhang füge ich den Quellcode und die Informationen, die aus dem Data Dictionary gelesen wurde bei.
              scheduler.txt

              Ich hoffe, dass mir jemand einen Tip geben kann, wie ich es zum Laufen bringen kann.

              Danke

              Comment


              • #8
                Bin kein großer Oracle Guru, aber Google beherrsche ich ganz gut Hier gibts anscheinend von Oracle eine Anleitung wie man so etwas erstellt:

                http://docs.oracle.com/cd/E11882_01/...cheduse005.htm

                Startet etwas unterhalb der Hälfter der Seite. Vielleicht hilft das ja weiter.

                Comment


                • #9
                  kann es sein, dass Deine Prozedur noch registriert werden muss, damit sie auf die Queue reagiert ?
                  Schau mal, ob Dir dbms_aq.register weiterhilft.

                  Comment

                  Working...
                  X