General Page
The last thing we want is for the target LPAR to IPL and appear as the production LPAR. While the toolkit has several safeguards to prevent this, humans, bugs and other failures may occur. As an additional safeguard, we recommend modifying the standard production LPAR startup program to include the following command at the very beginning, before anything else is done:
QZRDHASM/RUNLPARCMD SRLN(xxxxxxx) LPAR(xx) CMD(CALL PGM(QZRDHASM/QZRDENDSBS))
MONMSG CPF0000
The purpose of the RUNLPARCMD is to call the specified program if RUNLPARCMD is called on an LPAR with matching serial and lpar numbers (these should be your Flashcopy Target serial/LPAR numbers). QZRDHASM/QZRDENDSBS (displayed below) will bring the LPAR into restricted state, ending TCP and other subsystems. It will also change system values and line descriptions to ensure they do not come online. There is some redundancy / overkill involved, for example if the ENDSBS *ALL is rejected for whatever reason (authority, configuration changes etc) then the ENDTCP, ENDTCPSVR etc should proceed. Likewise, at the end (if it gets that far), the final command will send an escape message that will hold the startup job in MSGW and prevent the rest of the startup program sequences to occur.
Below is the source code for QZRDENDSBS- modify as you see fit, then compile it. It is included in QZRDHASM/QCLSRC.
PGM
SNDMSG MSG('This is the flashcopy LPAR and QSTRUP +
is not allowed to run. Entering +
restricted state.') TOUSR(*SYSOPR)
QZRDIASH5/ENDSYSCPY ACTION(*PSTSAVSYS) /* Remove if not on 7.70 */
MONMSG MSGID(CPF0000)
CHGSYSVAL SYSVAL(QSTRUPPGM) VALUE('*NONE')
MONMSG MSGID(CPF0000)
CHGIPLA STRRSTD(*YES) STRTCP(*NO)
MONMSG MSGID(CPF0000)
SBMJOB CMD(ENDSBS SBS(*ALL) OPTION(*IMMED) +
BCHTIMLMT(*NOMAX)) JOB(ENDSBSALL) +
JOBQ(QSYS/QCTL)
MONMSG MSGID(CPF0000)
ENDTCP OPTION(*IMMED)
MONMSG MSGID(CPF0000)
ENDTCPSVR SERVER(*ALL)
MONMSG MSGID(CPF0000)
ENDSBS SBS(QBATCH) OPTION(*IMMED)
MONMSG MSGID(CPF0000)
ENDSBS SBS(QHTTPSVR) OPTION(*IMMED)
MONMSG MSGID(CPF0000)
SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('This +
is the flashcopy QLPAR and QSTRUP is not +
allowed to run.') TOPGMQ(*PRV (*)) +
MSGTYPE(*ESCAPE)
ENDPGM
[{"Type":"MASTER","Line of Business":{"code":"LOB57","label":"Power"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SWG60","label":"IBM i"},"Platform":[{"code":"PF012","label":"IBM i"}],"Version":"7.1.0"}]
Was this topic helpful?
Document Information
Modified date:
18 December 2019
UID
ibm11138162