/* CRTBNDC PGM(DBMONTOOLS/QRYDBM) SRCFILE(DBMONTOOLS/C) SRCMBR(QDBM) */
#include [qusec.h]
#include [mih/cpybytes.h]
#include [stdio.h]
#include [string.h]
#pragma linkage(QQQQSDBM, OS)
int main(int argc, char *argv[])
{
Qus_EC_t err;
char *job;
char mon[2][10];
/* OldMon - Detailed Monitor (STRDBMON) */
/* NewMon - Summary/Memory-based Monitor */
char oldmon = 'N', newmon = 'N', memhdl[6];
int num;
int maxnum = 2;
int stg_used;
int rc;
job = argv[1];
err.Bytes_Provided = 0;
rc = QQQQSDBM(job, &num, &maxnum, &mon, memhdl, &err);
/* API parameter description */
/* Qualified job name - Input */
/* Number of active monitors - Output */
/* Size of active monitor array - Input */
/* Type of active monitor array - Output */
/* Memory handle - Output */
/* Error code - Input/Output */
if (!strncmp(mon[0], "*FILE", 5))
oldmon = 'Y';
else if (!strncmp(mon[1], "*FILE", 5))
oldmon = 'Y';
if (!strncmp(mon[0], "*SQLMEMORY", 10))
newmon = 'Y';
else if (!strncmp(mon[1], "*SQLMEMORY", 10))
newmon = 'Y';
if (oldmon == 'Y')
printf("Detailed monitor is running.\n");
else
printf("Detailed monitor is NOT running.\n");
if (newmon == 'Y')
printf("Summary monitor running. Mem handle %.6s\n", memhdl);
else
printf("Summary monitor is NOT running.\n");
return rc;
}
/* ================================================================ */
/* Source for creating a CL command to invoke monitor status pgm */
/* CRTCMD CMD(DBMONTOOLS/QRYDBM) PGM(DBMONTOOLS/QRYDBM) */
/* SRCFILE(DBMONTOOLS/QCMDSRC) */
/* COMMAND NAME: QRYDBM */
/* */
/* COMMAND TITLE: Query database monitor status */
/* */
/********************************************************************/
QRYDBM: CMD PROMPT('Query database monitor status')
PARM KWD(JOB) TYPE(JOBNAME) DFT(*CURRENT) +
SNGVAL((*ALL) (*CURRENT)) MIN(0) MAX(1) +
PROMPT('Job Name')
JOBNAME: QUAL TYPE(*NAME) +
LEN(10) +
RSTD(*NO) +
PARM KWD(JOB) TYPE(JOBNAME) DFT(*CURRENT) +
SNGVAL((*ALL) (*CURRENT)) MIN(0) MAX(1) +
PROMPT('Job Name')
JOBNAME: QUAL TYPE(*NAME) +
LEN(10) +
RSTD(*NO) +
MIN(1) +
EXPR(*YES)
QUAL TYPE(*NAME) +
LEN(10) +
RSTD(*NO) +
MIN(0) +
EXPR(*YES) +
PROMPT('User')
QUAL TYPE(*CHAR) +
LEN(6) +
RSTD(*NO) +
MIN(0) +
EXPR(*YES) +
FULL(*YES) +
RANGE(000000 999999) +
PROMPT('Number')