PDA

View Full Version : Plattenauslastung per Programm auslesen



M Scheid
26-06-14, 13:01
Hallo zusammen,

mit WRKSYSSTS kann ich mir die Plattenauslastung anzeigen lassen.

Gibt es eine Möglichkeit, diesen Wert mit Hilfe eines Programms (CL, API o.ä.) auszulesen?Für Eure

Hilfe schon mal vielen Dank.

ILEMax
26-06-14, 13:13
K.a.
aber wrksyssts geht doch nach *print
das kannst u auf jeden fall dann auslesen

aber warsch. gibt es auch ein API
Der ILEMax

ExAzubi
26-06-14, 13:17
Das geht sicherlich mit *PRINT und so

Schneller und besser ist aber das API

http://www-01.ibm.com/support/knowledgecenter/ssw_i5_54/apis/qyaspol.htm?lang=en

Pikachu
26-06-14, 14:17
Probier mal mit: Retrieve System Status (QWCRSSTS) API (http://www-01.ibm.com/support/knowledgecenter/api/content/ssw_i5_54/apis/qwcrssts.htm)

camouflage
26-06-14, 14:36
Nach einer Idee von Bob Cozzi...



H BNDDIR('QC2LE') OPTION(*NODEBUGIO:*SRCSTMT)
H DFTACTGRP(*NO) ACTGRP(*NEW) EXTBININT(*YES)

/copy qsysinc/qrpglesrc,qusec
/copy qsysinc/qrpglesrc,qgy
/copy qsysinc/qrpglesrc,qyaspol
/copy qsysinc/qrpglesrc,qusgen

D listSpace S 65535A
D QYASP0300_T DS LikeDS(QYAP0300) Inz
D diskUnit DS LikeDS(QYASP0300_T) Inz
D DU DS LikeDS(QYASP0300_T) Based(pDiskUnit)
D pDiskUnit S * InZ(%addr(diskUnit))

D closeOpenList PR extPgm('QGY/QGYCLST')
D handle 4A OPTIONS(*VARSIZE)
D apiErrorDS LikeDS(QUSEC) OPTIONS(*VARSIZE)

D getOpenListE PR extPgm('QGY/QGYGTLE')
D rtnValue 65535A OPTIONS(*VARSIZE)
D rtnValueLen 10I 0 Const
D handle 4A Const
D listInfo 80A OPTIONS(*VARSIZE)
D reqRtnCount 10I 0 Const
D strRcd 10I 0 Const
D apiErrorDS LikeDS(QUSEC) OPTIONS(*VARSIZE)

D openASPList PR extPgm('QGY/QYASPOL')
D rtnValue 65535A OPTIONS(*VARSIZE)
D rtnValueLen 10I 0 Const
D listInfo 80A OPTIONS(*VARSIZE)
D reqRtnCount 10I 0 Const
D filterCount 10I 0 Const
D filterInfo 80A OPTIONS(*VARSIZE)
D apiFormat 8A Const
D apiErrorDS LikeDS(QUSEC) OPTIONS(*VARSIZE)

D openFilter DS Qualified Inz
D entrySize 10I 0 Inz(%size(openFilter))
D Key 10I 0 Inz(1)
D dataSize 10I 0 Inz(4)
D data 10I 0 Inz(-1)

D openListInfo DS Qualified
D rcdAvail 10I 0
D rtnRcdCount 10I 0
D Handle 4A
D rcdLen 10I 0
D complete 1A
D crtDTS 13A
D status 1A
D reserved 1A
D rtnLen 10I 0
D rcdOffset 10I 0
D reserved2 40A

D apiError DS LikeDS(QUSEC) Inz

D rcdCount S 10I 0
D i S 10I 0
D perUsed S 7P 2
D perFree S 7P 2

/free
openASPList( listSpace : %size(listSpace) : openListInfo :
-1 : 1 : openFilter : 'YASP0300' : apiError );
rcdCount = openListInfo.rtnRcdCount;

for i = 1 to rcdCount;
getOpenListE(diskUnit : %size(diskUnit) : openListInfo.Handle :
openListInfo : 1 : i : apiError );

// At this point, the DiskUnit struct has the returned Disk info.
// Calc the percentage used and free for each disk unit
perFree = %DEC((du.qyalable / du.qyatotal00) * 100 : 7: 2);
perUsed = 100 - perFree;

endfor;

closeOpenList( openListInfo.Handle : apiError);
*inlr = *on;
return;
/end-free

Chris.jan
25-09-18, 11:00
Altes Thema, aber noch aktuell. Ich bezeichne ja immer die Auslastung als die % Auslastung der Plattenarme. Und das andere ist die Belegung.
Und um eben die Auslastung auszulesen vermute ich mal die folgende Werte aus dem QYAP0300:


Spalten . . . : 6 76 Ansehen QSYSINC/QRPGLESRC
SEU==> QYASPOL
FMT D DName+++++++++++ETDsVon++++Bi/L+++IDG.Schlüsselwörter++++++++++++++++++
0002.08 D QYASC 81 84I 0
0002.09 D* Sample Cnt
0002.10 D QYANBC 85 88I 0
0002.11 D* Not Busy Cnt

Kann das jemand so bestätigen?

Fuerchau
25-09-18, 11:20
Laut Doku sind dies Zähler und keine %-Werte.
%-Werte kann ich in dem API gar nicht sehen.
Ich finde auch kein vergleichbares API zum WRKDSKSTS.

Chris.jan
25-09-18, 11:32
Mit dem obigen Program von Bob erhält man je einen Wert pro Platte. Im QYAP0300 sieht man auch adäquat die Werte vom WRKDSKSTS. Und meines Erachtens sind die beiden Werte (Sample und not Busy) einfach nur in Proportion zu sehen. Mein Problem ist, daß ich es nicht verifizieren kann, da meine Testsyssteme alle bei <1% Auslastung herumdümpeln.
Es gibt übrigens auch ne Tabelle in der QSYS2 dazu, aber da kriegt man nicht viel.

holgerscherer
25-09-18, 15:05
Mein Problem ist, daß ich es nicht verifizieren kann, da meine Testsyssteme alle bei <1% Auslastung herumdümpeln..

Also, ein Testsystem zum Schwitzen zu bringen, das geht auch per CL - dann kann man die abgerufenen Werte auch besser verifizieren.
Allerdings muss man aufpassen, ob die Werte für den gewünschten Gebrauch aktuell oder fein genug sind. Meist reicht (um festzustellen, ob der Apparat zu viel zu tun hat), ein Messzeitraum über 3-5 Minuten, siehe WRKDSKSTS, F10, warten, F5

-h