While the OPSVIEW 7.1.4 (OPSLOG Tracking) panel provides functionality to merge archived OPSLOG, merging OPSLOG can also be achieved without requiring access to the panels.
OPS/MVS
At the time of writing, CCLXCNTL member ARCHMERGE is a method used to merge archived datasets into a single OPSLOG but does not provide the ability to save profile views. Product support is providing this document as a process for customers who need to extract profile-modified OPSLOG for later review.
Using the REXX below, access the merged OPSLOG to pull the requested date and time ranges from the ARCHLOG. Following the completion of this step, enter OPSLOG and issue "LOGN MERGELOG" to switch to the merged OPSLOG populated by this step.
/* Enable tracing as needed */
trace i
/*============================================================================*/
/* */
/* -- Prior to running, ensure these prerequisites are met: -- */
/* */
/* - Allocate a PS FB LRECL 640 dataset that will be used to copy OPSLOG */
/* records. */
/* */
/* - An OPSLOG DIV (allocated via DEFDIV) that will house the merged */
/* archived log. */
/* */
/* - Ensure the merged OPSLOG and allocated OPSLOG DIV are both set to */
/* "active" and marked "readonly". */
/* */
/*============================================================================*/
/* Execute an OPS/REXX exec that copies OPSLOG entries extracted from the */
/* archived OPSLOG DIV allocated in Step 1 of the instruction set to a */
/* previously defined PS dataset. */
ADDRESS OPSDYNAM
"ALLOCATE DD(STAGING) DSN('BRCM.OPSMVS.R####.MERGELOG.ENTRIES') SHR REUSE"
DO WHILE QUEUED() > 0
PULL IT
SAY IT
SAY 'ERRCD' OPSERCD
SAY 'IF CD' OPSIFCD
END
V = OPSLOG('EXTOPMO TIME(07:30:00) DATE(31MAY) MSGCOUNT(1000)',
'LOGNAME(ARCHLOG) DDNAME(STAGING)')
/* This step moves the extracted OPSLOG messages from the PS Dataset to a */
/* previously defined OPSLOG DIV used for saving filtered OPSLOG entries */
ADDRESS OPSDYNAM
"ALLOCATE DD(STAGING) DSN('BRCM.OPSMVS.R####.MERGELOG.ENTRIES') SHR REUSE"
DO WHILE QUEUED() > 0
PULL IT
SAY IT
SAY 'ERRCD' OPSERCD
SAY 'IF CD' OPSIFCD
END
ADDRESS TSO
Z = OPSLOGMG('LOAD DDNAME(STAGING) LOGNAME(MERGELOG) RESET')
DO WHILE QUEUED() > 0
PULL IT
SAY IT
END
Data Set Name . . . . : BRCM.OPSMVS.R####.MERGELOG.ENTRIES
General Data Current Allocation
Management class . . : BRCMMC Allocated cylinders : 2
Storage class . . . : BRCMSC Allocated extents . : 1
Volume serial . . . : BC1000
Device type . . . . : 3390
Data class . . . . . : BRCMDC
Organization . . . : PS Current Utilization
Record format . . . : FB Used cylinders . . : 0
Record length . . . : 640 Used extents . . . : 0
Block size . . . . : 64000
1st extent cylinders: 2
Secondary cylinders : 5 Dates
Data set name type : Creation date . . . : 2022/06/07
Data set encryption : NO Referenced date . . : ***None***
Expiration date . . : ***None***
SMS Compressible . : NO
/* Enable tracing as needed */
trace i
/*============================================================================*/
/* */
/* -- Prior to running, ensure these prerequisites are met: -- */
/* */
/* - Allocate a PS FB LRECL 640 dataset that will be used to copy OPSLOG */
/* records. */
/* */
/* - An OPSLOG DIV (allocated via DEFDIV) that will house the merged */
/* archived log. */
/* */
/* - Ensure the merged OPSLOG and allocated OPSLOG DIV are both set to */
/* "active" and marked "readonly". */
/* */
/*============================================================================*/
/* Execute an OPS/REXX exec that copies OPSLOG entries extracted from the */
/* archived OPSLOG DIV allocated in Step 1 of the instruction set to a */
/* previously defined PS dataset. */
ADDRESS OPSDYNAM
"ALLOCATE DD(STAGING) DSN('BRCM.OPSMVS.R####.MERGELOG.ENTRIES') SHR REUSE"
DO WHILE QUEUED() > 0
PULL IT
SAY IT
SAY 'ERRCD' OPSERCD
SAY 'IF CD' OPSIFCD
END
V = OPSLOG('EXTOPMO TIME(07:30:00) DATE(31MAY) MSGCOUNT(1000)',
'LOGNAME(ARCHLOG) DDNAME(STAGING)')
/* This step moves the extracted OPSLOG messages from the PS Dataset to a */
/* previously defined OPSLOG DIV used for saving filtered OPSLOG entries */
ADDRESS OPSDYNAM
"ALLOCATE DD(STAGING) DSN('BRCM.OPSMVS.R####.MERGELOG.ENTRIES') SHR REUSE"
DO WHILE QUEUED() > 0
PULL IT
SAY IT
SAY 'ERRCD' OPSERCD
SAY 'IF CD' OPSIFCD
END
ADDRESS TSO
Z = OPSLOGMG('LOAD DDNAME(STAGING) LOGNAME(MERGELOG) RESET')
DO WHILE QUEUED() > 0
PULL IT
SAY IT
END