PDA

View Full Version : Job überwachen mit anderem Job



harkne
10-06-08, 14:14
Hallo zusammen,

ich möchte gerne mit einem Job einen anderen Job überwachen. Falls der überwachte Job auf MSGW geht soll eine Mail versendet werden.

Jetzt hab ich beim Befehl WRKACTJOB nur die Möglichkeit mit OUTPUT(*PRINT) zu arbeiten. Gibts ein API hierfür oder weiss jemand einen andere Lösung ?

Vielen Dank

Uwe Moesel
10-06-08, 15:01
Retrieve Job Status (QWCRJBST) API
Die Beschreibung des APIs findet man hier:
IBM Systems Information Center (http://publib.boulder.ibm.com/infocenter/systems/scope/i5os/index.jsp)

Gruß Uwe

harkne
12-06-08, 08:44
Darüber bekomme ich aber nur wenn ich richtig gelesen habe die Information ob der Job aktiv, in JOBQ oder in OUTQ ist. Ich bräuchte aber die Information ob der aktive Job auf MSGW steht.
Ich kämpfe mich gerade durch den QUSLJOB. Allerdings benötigt dieses API einen UserSpace da ja die Möglichkeit besteht den kompletten WRKACTJOB zurückzugeben. Was ich auch ursprünglich wollte aber nicht mehr brauche. Mir stehen die Informationen JOBNAME, JOBUSER und JOBNO zur Verfügung. Aber ein anderes API wird es wohl nicht geben wo ich als einfachen Parameter die Information zurück bekomme.

Fuerchau
12-06-08, 09:11
Die meisten Informationen gibts über
Retrieve Job Information (QUSRJOBI) API (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/apis/qusrjobi.htm?resultof=%22%61%70%69%22%20%22%72%65% 74%72%69%65%76%65%22%20%22%72%65%74%72%69%65%76%22 %20%22%6a%6f%62%22%20)

Du benötigst das JOBI0200-Format und im Feld "Active job status" steht, was du brauchst.

Die Erklärung hierzu findest du wiederum unter
Work Management API Attribute Descriptions (WMAttrDesc) (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/apis/WMAttrDesc.htm)

Neuhauser
12-06-08, 09:25
STRSYSINF (http://www.neuhauser.de/produkte/systemueberwachung/strsysinf/index.html)

harkne
12-06-08, 09:43
Noch eine Frage

Binary 4 kann ich in einer DS als 10i 0 definieren. Kann mir jemand sagen wie ich Binary 8 unsigned definieren muss ?

Pikachu
12-06-08, 10:11
20U 0 (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/apiref/data.htm)

harkne
12-06-08, 10:19
Hab alles hinbekommen, funktioniert super. Tausend Dank an alle

Falls jemand mal sowas braucht hier der Quellcode:



d P01JobInf ds 256
d dsJobBytesRtn 10I 0
d dsJobBytesAvl 10I 0
d dsJobName 10
d dsJobUser 10
d dsJobNumber 6
d dsJobIntern 16
d dsJobStatus 10
d dsJobType 1
d dsJobSubtype 1
d dsSbsDscName 10
d dsRunPty 10I 0
d dsSysPoolId 10I 0
d dsPrcUntTimU 10I 0
d dsNoOfAux 10I 0
d dsNoIntTrans 10I 0
d dsResTimTot 10I 0
d dsFuncType 1
d dsFuncName 10
d dsActJobStat 4
d dsNoDBLckW 10I 0
d dsNoInMaLckW 10I 0
d dsNoNonDBLckW 10I 0
d dsTimSpDBL 10I 0
d dsTimSpIML 10I 0
d dsTimSpNDBL 10I 0


d P01InfLen s 4b 0

0266.00 **================================================ ===============
0267.00 ** Parameterlist
0268.00 **================================================ ===============
0268.01 c *entry plist
0268.02 c parm PiJobName 10
0268.03 c parm PiJobUser 10
0268.04 c parm PiJobNo 6
0268.05 **
0268.06 ** QUSRJOBI
0268.07 c PlQUsrJobI plist
0268.08 c parm P01JobInf
0268.09 c parm P01InfLen
0268.10 c parm P01ApiFmt 8
0268.11 c parm P01JobQual 26
0268.12 c parm P01JobInt 16

0270.00 ************************************************** ***************
0271.00 ** Main
0272.00 ************************************************** ***************
0273.00 c eval P01JobQual=PiJobName+PiJobUser+PiJobNo
0274.00 c z-add 256 P01InfLen
0274.01 c eval P01ApiFmt = 'JOBI0200'
0274.02 c eval P01JobInt = *blanks
0275.00 **
0276.00 c call 'QUSRJOBI' PlQUsrJobI
0277.00 **
0278.00 c eval *inlr = *on


Wie Fuerchau bereits erwähnt hat. In dsActJobStat steht der Status des aktiven Jobs z.B. MSGW

Fuerchau
12-06-08, 11:03
Sowas kann man auch mit CLP hinbekommen, da sich Binärwerte direkt mit %BIN(&MYVAR POS LEN) auswerten und auch setzen lassen, wobei LEN 2 oder 4 sein kann (ggf. inzwischen auch 8?).

Dadurch spart man sich den ILERPG-Overhead und die Startposition (+1) kann man ja aus den API-Beschreibungen rauslesen.