/* ************************************************************************** */
/* DBG213CL: End jobs with lock on specified object */
/* Copyright (C) 2007 Martin Rowe <martin@dbg400.net> */
/* */
/* This program is free software; you can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 2 of the License, or */
/* (at your option) any later version. */
/* */
/* This program is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU General Public License for more details. */
/* */
/* You should have received a copy of the GNU General Public License */
/* along with this program; if not, write to the Free Software */
/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
/* ************************************************************************** */
PGM PARM(&QUALOBJ &OBJTYPE)
DCL VAR(&QUALOBJ) TYPE(*CHAR) LEN(20)
DCL VAR(&OBJECT) TYPE(*CHAR) LEN(10)
DCL VAR(&LIBRARY) TYPE(*CHAR) LEN(10)
DCL VAR(&RTNLIB) TYPE(*CHAR) LEN(10)
DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(512)
DCL VAR(&OBJTYPE) TYPE(*CHAR) LEN(7)
DCL VAR(&OBJATR) TYPE(*CHAR) LEN(10)
DCL VAR(&MBR) TYPE(*CHAR) LEN(10) VALUE('*NONE')
DCL VAR(&LOCKS) TYPE(*DEC) LEN(10 0)
DCL VAR(&LOCKCOUNT) TYPE(*CHAR) LEN(10)
DCL VAR(&ERRORS) TYPE(*DEC) LEN(10 0)
DCL VAR(&ERRORCOUNT) TYPE(*CHAR) LEN(10)
/* ************************************************************************** */
/* GLOBAL MESSAGE MONITOR */
/* ************************************************************************** */
MONMSG MSGID(CPF0000 RPG0000 QRG0000 RSF0000 +
MCH0000) EXEC(GOTO CMDLBL(##ERROR))
GOTO CMDLBL(##NOERROR)
##ERROR:
MOVDIAGMSG
MONMSG MSGID(CPF0000)
RSNESCMSG
MONMSG MSGID(CPF0000)
RETURN
##NOERROR:
/* ************************************************************************** */
/* MAINLINE: */
/* ************************************************************************** */
CHGVAR VAR(&OBJECT) VALUE(%SST(&QUALOBJ 1 10))
CHGVAR VAR(&LIBRARY) VALUE(%SST(&QUALOBJ 11 10))
RTVOBJD OBJ(&LIBRARY/&OBJECT) OBJTYPE(&OBJTYPE) +
RTNLIB(&RTNLIB) OBJATR(&OBJATR)
IF COND(%SST(&OBJATR 1 2) = 'PF') THEN(CHGVAR +
VAR(&MBR) VALUE('*ALL'))
IF COND(%SST(&OBJATR 1 2) = 'LF') THEN(CHGVAR +
VAR(&MBR) VALUE('*ALL'))
IF COND(&LIBRARY *EQ '*LIBL') THEN(DO)
CHGVAR VAR(&LIBRARY) VALUE(&RTNLIB)
ENDDO
ENDJOBLCK OBJ(&LIBRARY/&OBJECT) OBJTYPE(&OBJTYPE) +
MBR(&MBR) OPTION(*IMMED) LOCKS(&LOCKS) +
ERRORS(&ERRORS)
CHGVAR VAR(&ERRORCOUNT) VALUE(&ERRORS)
CHGVAR VAR(&LOCKCOUNT) VALUE(&LOCKS)
CHGVAR VAR(&MSGDTA) VALUE(&LOCKCOUNT *BCAT 'locks +
ended.' *BCAT &ERRORCOUNT *BCAT 'errors +
detected.')
SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA(&MSGDTA) +
MSGTYPE(*COMP)
ENDPGM:
RETURN
ENDPGM