View Full Version : API zur Ermittlung, ob QDBSRV04/05 Jobs noch Indexe aufbauen
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
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)
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
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
Für die einzelnen Zugriffspfade müßten doch eigentlich Sperren bestehen, solange sie noch nicht wieder aufgebaut sind.
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.
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
... 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
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.