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
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)
Dazu dient
DBMS_APPLICATION_INFO.SET_SESSION_LONGOPSOracle-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)
Hallo Frank,
AntwortenLöschen... 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
Hallo Carsten,
AntwortenLöschenstimmt - 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