Broadcom Mainframe Software Community

 View Only

 OPS3445O Backup OPSLOG

Matthew Coleman's profile image
Matthew Coleman posted Mar 20, 2024 02:27 PM


I am working on setting up the automated process for the OPS3445O message to swap from the primary OPSLOG to a secondary OPSLOG when the Log wrap condition occurs. I know how to set up the secondary OPSLOG and the archiving.  

I cannot find the parm that will set the secondary opslog dataset. In OPSSPA00The primary one is OPSPRM_Set("ARCHIVEHLQ","MY.DSN") How do I set up the secondary opslog in the OPSSPA00 member to be activated during OPS/MVS startup? Is there a different parm?

Am I looking in the wrong place and there is a different way to set the secondary OPSLOG as active?


Matt Coleman

Michael Dixon's profile image
Michael Dixon

Hi Matt...

You can basically think of the "ARCHIVEHLQ" parm as the naming convention for the archive GDG. This value was something you probably also included within the ARCHGDG JCL member, located in the CNTL dataset. If you set the parm to something like "SYS3.OPSMVS.SYSA.ARCHIVE" then your archives should generate as SYS3.OPSMVS.SYSA.ARCHIVE.G00001V00 and so on.

If you've already defined and activated your primary OPSLOG and a secondary (say OPSLOG2) within the PA00 member, then you should review the OPS3445O rule provided by Broadcom/CA, along with the related sample program. When you actually "swap", the live log should go from whatever you call it (OPSLOG) to the alternate (OPSLOG2) and also spin off an archive which should appear under 7.1.4

That make sense? 

Matthew Coleman's profile image
Matthew Coleman

Hello, I have been reading up on this and have most of it figured out. The only thing that I am having trouble with is how the primary opslog, DD_OPSLOG, is allocated at start up. Where is the command to set live on that OPSLOG. and set DD_OPSLOG2 as Active. I saw something about issuing a command to set DD_OPSLOG live but I am not sure where that command would go? in the parmlib after the allocation? I cannot find a detailed explanation on how to set it up. 



Marcel van Ek's profile image
Marcel van Ek

Review the sample rexx ACLXSAMP(OPS3445O) (Containing the setlive cmds)  and accompanied sample rule ACLXRULE(OPS3445O) triggering that rexx. 

You can allocate the desired opslog at any time, but typically you'd have them predefined and allocated at startup on OPSsPAxx parmlib, so they're on standby. 

Dave Gorisek's profile image
Dave Gorisek

We have an application/pgm that is triggered by the OPS3445O message that simply defines,activates,switches to an IN-STORAGE OPSLOG. Within the application a dynamic EOJ rule is also enabled to monitor the successful running of the OPSLOG archive task (triggered internally by OPSMVS when the switch from the LIVE OPSLOG to the IN-STORAGE OPSLOG occurs) as to which indicates the recent LIVE data has been archived (stored away). The dynamic EOJ logic will then re-fire the application/pgm to then RESET the LIVE log (clear set back to zero count) and then SWITCHes back to the LIVE (OPSLOG) DD. The IN-STORAGE OPSLOG is then deactivated and deleted. Status messages from the beginning to the end including any failures (if they occur) are emailed to the OPS/MVS team as you still need to be notified of the situation especially if the process would fail for some reason or another as you still have time to manually address if needed. Been running for a few years without issues.