The QSPSPLI API can tell you.
Have you ever wondered how many spool files are on your system (or more accurately, on a given auxiliary storage pool which, for many companies, is the same thing)? What about the number of spool files a particular user currently owns? If so, don't feel alone. In fact, there have been sufficient requests for this type of management data that IBM has provided the Retrieve Spool Information (QSPSPLI) API to provide you with quick access to this information. The QSPSPLI API, documented here, is standard with 7.1 of the i operating system and is also available on 6.1 with PTFs SI33959 and SI34013.
The QSPSPLI API follows standard system conventions for retrieving information—well, other than not having an 'R' in its name (such as with the APIs QSPROUTQ and QSPRWTRI to retrieve output queue and writer information, respectively) to indicate that the API provides a retrieve function. The first three parameters, respectively, identify the receiver variable used to return information in, the length of the receiver variable, and the format of the information to be returned. The next two parameters identify the auxiliary storage pool (ASP) to be used and the name of the user to be used when gathering the spool information. Related to the fifth parameter, user name, in addition to a specific user profile name, the special values *ALL and *CURRENT are also supported. The last parameter is the API error code.
The following sample program, utilizing the QSPSPLI API, demonstrates displaying the name of the ASP searched, the number of spooled files owned by the current caller of the program, and the total number of spool files in the ASP.
dRtvSplInfo pr extpgm('QSPSPLI')
d Receiver 65535 options(*varsize)
d LenRcvr 10i 0 const
d Format 8 const
d ASP 10 const
d UsrName 10 const
d ErrCde likeds(QUSEC)
dReceiver ds likeds(QSPI010000)
/copy qsysinc/qrpglesrc,qspspli
/copy qsysinc/qrpglesrc,qusec
/free
QUSBPrv = 0;
RtvSplInfo(Receiver :%size(Receiver) :'SPLI0100'
:'*SYSBAS' :'*CURRENT' :QUSEC);
dsply ('For ' + %trimr(Receiver.QSPASPG) + ':');
dsply (%trimr(Receiver.QSPUN01) + ' has ' +
%char(Receiver.QSPNOSF) + ' spool files');
RtvSplInfo(Receiver :%size(Receiver) :'SPLI0100'
:'*SYSBAS' :'*ALL' :QUSEC);
dsply ('All users have ' + %char(Receiver.QSPNOSF) +
' spool files');
*inlr = *on;
return;
/end-free
To compile the program, assuming that your source member is named GETSPLINFO and can be found in source file *LIBL/QRPGLESRC, you might use the command:
CRTBNDRPG GETSPLINFO
Calling the GETSPLINFO program will then display the ASP searched (the system ASP) along with the current user and system spool file totals. Pretty simple! If you need a refresher on how the sample program works, I recommend reviewing my previous articles concerning Retrieve APIs starting with "Retrieving Information, Part I."
As usual, if you have any API questions, send them to me at
as/400, os/400, iseries, system i, i5/os, ibm i, power systems, 6.1, 7.1, V7, V6R1
LATEST COMMENTS
MC Press Online