PDA

View Full Version : API zur Ermittlung, ob QDBSRV04/05 Jobs noch Indexe aufbauen



Seiten : [1] 2

schatte
21-09-11, 12:19
Hallo,

um den Index-Aufbau nach einem RGZPFM zu parallelisieren, kann man den Parameter RBDACCPTH(*OPTIMIZE) angeben.
Dadurch wird der RGZPFM beendet und die Systemjobs QDBSRV04/QDBSRV05 übernehmen den Neuaufbau der zugehörigen Indexe.

Programmtechnisch möchte ich nun feststellen, ob alle Indexe fertig aufgebaut worden sind.

Es gibt bereits den OS/400 Befehl EDTRBDAP mit dem der aktuelle Status je Index eingesehen werden kann. Gibt es dazu auch ein entsprechendes API?

Gruß
Matthias

Fuerchau
21-09-11, 12:26
Siehe hier:
Retrieve Member Description (QUSRMBRD) API (http://publib.boulder.ibm.com/infocenter/iseries/v7r1m0/topic/apis/qusrmbrd.htm?resultof=%22%45%44%54%52%42%44%41%50% 22%20%22%65%64%74%72%62%64%61%70%22%20)

schatte
21-09-11, 12:34
Man müsste also per DSPDBR (oder zugehörigem API) alle logischen Dateien der zu reorganisierenden Datei ermitteln und dann pro logischer Datei das QUSRMBRD API aufrufen.

Erst wenn bei allen logischen Dateien der Parameter "Access path valid" auf Y=Valid steht, wäre der RGZPFM für diese Datei komplett abgeschlossen?

Gruß
Matthias

Fuerchau
21-09-11, 13:02
So sehe ich das auch.
Der DSPFD mit Outfile liefert diese Information wohl leider nicht.

KingofKning
21-09-11, 14:03
Warum machst Du nicht ein wrkactjob in eine Datei und schaust ob der Begrif Index drin vorkommt.
Prüfen müßte man ob es die Möglichkeit gibt das alle Jobs gerade nichts tun, und trotzdem nicht alle Indizes aufgebaut sind.

GG

Pikachu
21-09-11, 14:42
Für die einzelnen Zugriffspfade müßten doch eigentlich Sperren bestehen, solange sie noch nicht wieder aufgebaut sind.

Fuerchau
21-09-11, 15:44
INDEX könnte auch im Job bei temporärem Index-Aufbau stehen und welcher das gerade ist, erfährt man da auch nicht.
Und Sperren zu ermitteln ist auch nicht einfacher da ist das API für DSPDBR und RTVMBRD schon schneller.

schatte
21-09-11, 17:20
Warum machst Du nicht ein wrkactjob in eine Datei und schaust ob der Begrif Index drin vorkommt.
Prüfen müßte man ob es die Möglichkeit gibt das alle Jobs gerade nichts tun, und trotzdem nicht alle Indizes aufgebaut sind.

GG

WRKACTJOB mit *PRINT und dann in eine Datei finde ich immer eine sehr unschöne Lösung ;-)
APIs sind mir da schon lieber und sauberer!

Außerdem kann die logische Datei mit dem gleichen Namen in unterschiedlichen Bibliotheken vorkommen.

Dann werde ich mal die besprochene API Variante umsetzen.

Danke für eure Hilfe.

Gruß
Matthias

BenderD
21-09-11, 17:32
... ich würde da erst mal evaluieren, ob chlf maint(*DLY) RGZPFM und anschließend für jedes LF ein CHGLF parallel raus submitten nicht schneller ist. Diese Jobs können dann ein lock auf die table legen und der steuernde Job sammelt die allein, wenn er alle hat, ist fertig.

D*B

schatte
21-09-11, 17:46
Klingt auch gut, wobei *DLY bei UNIQUE Logischen nicht funktioniert.

Der anschließende CHGLF MAINT(*IMMED) bewirkt jedoch leider auch nicht, dass der Index neu aufgebaut wird. Habe ich gerade mal getestet und der Zugriffspfad nach dem 2. CHGLF auch immer noch ungültig.