Received this S0C3 related error message during OPSMVS startup after IPL and also after attempts to re-cycle OPSMVS:
OPS3781S ABEND X'000C3000' occurred at OPINBO+X'0000482C' - Browse checkpoint processing suspended
Workaround: OPSLOG2 was set to be the live log in option =4.13, log data started recording on OPSLOG2.
Subsequent attempts to inactivate OPSLOG1 resulted in:
OPSCTL OPSLOG error
address OPSCTL OPSLOG failed. RC=153
I am concerned with the OPSLOG is corrupted.
How can the issue with OPSLOG1 be resolved?
This abend occurs when the number of messages stored in an OPSLOG dataset reaches the maximum threshold of 2 GB (X'7FFFFFFF' or decimal 2147483647). The number of messages stored in OPSLOG can be checked by going to OPSVIEW option =4.1.1 and reviewing the BROWSECHECKNUM parameter which will show the current message count.
All messages written to the OPSLOG have a unique Message Number, which is incremented sequentially. The OPSLOG is a linear VSAM dataset. Once the message number reaches its maximum value, then the only option is recovery, as noted below. In order to avoid this situation, Broadcom encourages implementing the OPS3445O message strategy so that the OPSLOG is switched to a secondary OPSLOG once the original reaches the 80% threshold. The archive of the old OPSLOG will automatically take place when the switch occurs.
When an OPSLOG dataset is allowed to exceed to 2 GB limit and stops recording, the only option available to resolve the issue requires shutting down OPS/MVS and reallocating the OPSLOG dataset having the problem. The steps necessary follow below.
1. Shut down OPS/MVS.
2. Delete the OPSLOG dataset in error.
3. Copy the following REXX exec to a member in an appropriate library and modify the fields in red to reflect the system smfid, dataset name and attributes associated with the OPSLOG in need of reallocation:
/* REXX */
/*-------------------------------------------------------------------*/
/* Set the smfid of the system in which these data sets will be */
/* allocated. Since these data sets must be unique per system, it */
/* is recommended that the smfid be used as part of the data set */
/* name. */
/*-+----1----+----2----+----3----+----4----+----5----+----6----+----7*/
smfid = 'SYSA'
/*-------------------------------------------------------------------*/
/* Set primary OPSLOG data set attributes. */
/* OPSLOG_dsn - Name of the primary OPSLOG. Default logic */
/* will create dsn of 'SYS1.OPS.smfid.OPSLOG' */
/* Set to '' if not utilizing. */
/* OPSLOG_volser - Volser where the primary OPSLOG should be */
/* allocated. */
/* OPSLOG_cylinders - Number of primary cylinders to allocate for */
/* the primary OPSLOG. Default logic requests */
/* for '790' cylinders. The setting of the */
/* BROWSEMAX operand of the OPSLOG DEFINE */
/* statement within the OPSSPA00 start-up */
/* member for the primary OPSLOG will need */
/* altered if this value is modified. */
/*-+----1----+----2----+----3----+----4----+----5----+----6----+----7*/
OPSLOG_dsn = 'SYS1.OPS.'smfid'.OPSLOG' /* Data set name */
OPSLOG_volser = 'xxxxxx' /* Volser for OPSLOG */
OPSLOG_cylinders = '790' /* # of primary and... */
/* secondary cylinders */
if OPSLOG_dsn <> '' then
do
address TSO
"DEFINE CLUSTER ( NAME('"OPSLOG_dsn"')",
"CYLINDERS("OPSLOG_cylinders","0")",
"VOL("OPSLOG_volser")",
"SHAREOPTIONS(2,3)",
"LINEAR )",
"DATA ( NAME('"OPSLOG_dsn".DATA') )"
say 'DEFINE of 'OPSLOG_dsn' executed. RC = 'rc
end
4. Execute the REXX program in the TSO foreground via the EXECUTE command:
EXEC 'your.rexx.library(member_name)'
5. Ensure the return code is 0 upon execution. A clean, empty OPSLOG dataset has now been allocated and is ready for use.
6. Restart OPS/MVS and check that all is well in the "OPSLOG Definitions" panel, OPSVIEW option =4.13.
Next, to prevent OPSLOG from reaching the 2 GB limit going forward, please do the following:
1. Copy the message rule hlq.CCLXRULS(OPS3445O) to an appropriate ruleset and enable/auto-enable it.
2. Copy the member hlq.CCLXSAMP(OPS3445O) to an appropriate REXX library present in the STEPLIB concatenation of the OSF servers.
Carefully review all comments in each member for detailed instructions regarding implementation.
Within the comments, the purpose of these members is stated as follows:
Purpose - Each event in the OPSLOG contains a message number
that is incremented for each logged event. The
highest possible message number is slightly higher
than 2 billion. The "live" OPSLOG must be
switched to a new OPSLOG to avoid an outage. This
rule will fire on the early warning message of
this condition nearing, and perform a switch to a
new (pre-allocated) "live" OPSLOG.
There is a community post that covers questions regarding the OPS3445O message.
https://community.broadcom.com/communities/community-home/digestviewer/viewthread?MID=801447