DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS

Für langlaufende Prozesse kann es hilfreich sein, entsprechende Informationen über den Prozessfortschritt in die entsprechende Oracle-View einzutragen.

Dazu dient
DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS
Oracle-Doku: http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28419/d_appinf.htm#i996999


Am konkreten Beispiel kann das so aussehen:

procedure proc
   (
     p_A in number,
     p_B in number
   )
is
   ...
   -- für APP_INFO
   rindex pls_integer := -1;
   slno pls_integer;

begin

  ...
-- APP_INFO
dbms_application_info.set_session_longops(
   RINDEX => rindex
   ,SLNO => slno
   ,OP_NAME => 'APEX: <Name des Paketes>'
   ,SOFAR => 1
   ,TOTALWORK => 7
   ,target_desc => '<Name der Prozedur>'
);

...


RINDEX und SLNO - sind intern gebrauchte Werte siehe Doku.
OP_NAME - beschreibt die Aktion -> zu sehen z.B. auf der long-Op-Seite im Toad
SOFAR - aktueller Fortschritt
TOTALWORK - Gesamtzahl der Schritte
TARGET_DESC - Beschreibung des aktuellen Schrittes (nein, leider nicht: Wird in 10g2 nicht aktualisiert, so dass man nur den zuerst gesetzten Eintrag sieht)

Kommentare

  1. Hallo Frank,

    ... und das könnte man (speziell wo ich gerade APEX sehe) mit einem "Fortschrittsbalken" an der Oberfläche ergänzen ...

    http://www.oracle.com/global/de/community/tipps/hintergrund-jobs/index.html

    Beste Grüße

    -Carsten

    AntwortenLöschen
  2. Hallo Carsten,

    stimmt - ich möchte den Balken aber gern im "Ajax"-Popup-Fenster haben. :-)

    ... und dafür fehlt mir z.Z. noch die Lösung (aktuell gibt's nur das processing3.gif).

    Viele Grüße,
    Frank

    AntwortenLöschen

Kommentar veröffentlichen

Beliebte Posts aus diesem Blog

PGA unter Oracle 11g

trunc(sysdate) - nette Spiele mit dem Datum

Datapump - Verzeichnis erstellen