Logo: TUG TORONTO USERS GROUP for Midrange Systems
TUG
e -server magazine

November 1997: Volume 13, Number 2


Let AS/400 Page You

By Mohammad Hanif

here are situations when you are running an unattended job on your AS/400 and would like to be informed in case of a problem. A lot of expensive products are available in the market which can alert you by sending a message to your pager. For TUG News Magazine readers I am presenting a technical solution which will cost nothing and still your AS/400 can call a pager if there is a problem. It is assumed that IBM ES link is installed at your site.

The paging software uses three CL programs: PAGER, PAGON and PAGOFF. PAGER is the main program. It first submits the program PAGON to vary on the configuration objects. Then it allocates the device description PAGDEV. Display file QDSIGNON is overridden to the device. Then the program sends the file which dials out the pager number specified in the controller description and subsequently enters the predefined code digits. At the end, the device is de-allocated and program MSGOFF is called to reset the configuration objects. This is a very simple CL program. It can be called in your programs by monitoring those error messages where you want to page someone.

In order to implement this utility, create the following configuration objects and CL programs:


CRTLINSDLC  LIND(PAGLIN)  RSRCNAME(LIN011)  CNN(*SWTPP)  +
AUTODIAL(*YES)  DIALCMD(*V25BIS)  +
STNADR(01)  TEXT('PAGER LINE')

CRTCTLRWS   CTLD(PAGCTL)  TYPE(5394) MODEL(1)  +
LINKTYPE(*SDLC) ONLINE(*NO)  +
SWITCHED(*YES) SWTLINLST(PAGLIB)  +
EXCHID(05F00004) CNNNBR('SST9:nnnnnnn===9999')  +
STNADR(04)  TEXT('PAGER  CONTROLLER')

In the above command, "nnnnnnn" is the pager number; "===" is three seconds delay before keying in pager message which could be adjusted according to different pager requirements; and "9999" is the predefined message code which will appear on your pager. Pager number and message code can be changed in your CL program using CHGCTLD command to send different message codes to various pager holders.


CRTDEVDSP   DEVD(PAGDEV)  DEVCLS(*RMT)  TYPE(5291)  +
MODEL(1)  LOCADR(01)  ONLINE(*YES)  +
CTL(PAGCTL)  DROP(*NO)  TEXT('PAGER DEVICE')

PROGRAM PAGON:


PGM
VRYCFG     CFGOBJ(PAGCTL) CFGTYPE(*CTL) STATUS(*OFF)
MONMSG     MSGID(CPF0000)
VRYCFG     CFGOBJ(PAGLIN) CFGTYPE(*LIN) STATUS(*OFF)
MONMSG     MSGID(CPF0000)
RYCFG     CFGOBJ(QESLINE) CFGTYPE(*LIN) STATUS(*OFF)
MONMSG     MSGID(CPF0000)
VRYCFG     CFGOBJ(PAGLIN) CFGTYPE(*CTL) STATUS(*ON)
MONMSG     MSGID(CPF0000)
VRYCFG     CFGOBJ(PAGCTL) CFGTYPE(*LIN) STATUS(*ON)
MONMSG     MSGID(CPF0000)
ENDPGM

PROGRAM PAGOFF:


PGM
VRYCFG     CFGOBJ(PAGCTL) CFGTYPE(*CTL) STATUS(*OFF)
MONMSG     MSGID(CPF0000)
VRYCFG     CFGOBJ(PAGLIN) CFGTYPE(*LIN) STATUS(*OFF)
MONMSG     MSGID(CPF0000)
VRYCFG     CFGOBJ(QESLINE) CFGTYPE(*LIN) STATUS(*ON)
MONMSG     MSGID(CPF0000)
ENDPGM

PROGRAM PAGER:


PGM
DCLF       FILE(QSYS/QDSIGNON)
SBMJOB     CMD(CALL PGM(PAGON)) JOB(PAGON) JOBQ(QINTER)
DLYJOB     DLY(30)
ALCOBJ     OBJ((PAGDEV *DEVD *EXCLRD)) WAIT(10)
OVRDSPF    FILE(QDSIGNON) DEV(PAGDEV)
SNDF
MONMSG     MSGID(CPF4128)
DLCOBJ     OBJ((PAGDEV *DEVD *EXCLRD))
CALL       PGM(PAGOFF)
ENDPGM
T < G