Apologies for the delay in response, other work obligations took priority. I coded the OPSLOG function exactly as you suggessted and it exhibited the behavior I saw before. Below I have pasted my code as well as the output so you can see the count changing each time.
RULE CODE
)MSG TEST*
)INIT
)PROC
diag_pfx = "DIAG:" OPSINFO('PROGRAM')
jb_nm = MSG.OJOBNAME
SAY diag_pfx "*** BEGIN OPSLOG() TEST ***"
SAY diag_pfx "JB_NM ="jb_nm
z = OPSCLEDQ()
test1 = OPSLOG("EXTRACT TIME(-30) MSGID(TESTBD131)",
"JOBNAME("jb_nm" SOURCE(O))")
SAY diag_pfx "TEST1 ="test1
RETURN 'NORMAL'
OUTPUT
Date TIME ----+----1----+----2----+----3----+----4----+----5----+----6----
21AUG 13:30:14 SOSTEST 4 <== Command to initiate my test REXX.
21AUG 13:30:14 OPS3724O TSO TOTMB.SOSTEST Sent CMD=OX P('OEMDS.OPSMVS.RULES.TOT<== Test REXX execting...
21AUG 13:30:14 OPS3092O OX P('OEMDS.OPSMVS.RULES.TOTMB.MF1T(SOSTSTX)') A(4) <== ...
21AUG 13:30:14 OPS1370O OPSOSF X'0000' X'0000' X'0000' NONE 300 TESTBD131 a<== REXX issues WTO.
21AUG 13:30:14 TESTBD131 applid CICS is under stress (short on storage below 16<== Test BAD WTO. Pass 1.
21AUG 13:30:14 OPS1000O DIAG: TOTMB.OPSLGTST *** BEGIN OPSLOG() TEST *** <== Diagnostic message from my rule.
21AUG 13:30:14 OPS1000O DIAG: TOTMB.OPSLGTST JB_NM =OPSOSF <== Diagnostic message from my rule. Jobname from RULE.
21AUG 13:30:14 OPS1000O DIAG: TOTMB.OPSLGTST TEST1 =1 <== Diagnostic message from my rule. Count from OPSLOG().
21AUG 13:30:15 OPS1370O OPSOSF X'0000' X'0000' X'0000' NONE 300 TESTGD132 a
21AUG 13:30:15 TESTGD132 applid CICS is no longer short on storage below 16MB. <== Test GOOD WTO. Pass 1.
21AUG 13:30:15 OPS1000O DIAG: TOTMB.OPSLGTST *** BEGIN OPSLOG() TEST ***
21AUG 13:30:15 OPS1000O DIAG: TOTMB.OPSLGTST JB_NM =OPSOSF <== Diagnostic message from my rule. Jobname from RULE.
21AUG 13:30:15 OPS1000O DIAG: TOTMB.OPSLGTST TEST1 =0 <== Diagnostic message from my rule. Count from OPSLOG().
21AUG 13:30:16 OPS1370O OPSOSF X'0000' X'0000' X'0000' NONE 300 TESTBD131 a
21AUG 13:30:16 TESTBD131 applid CICS is under stress (short on storage below 16<== Test BAD WTO. Pass 2.
21AUG 13:30:16 OPS1000O DIAG: TOTMB.OPSLGTST *** BEGIN OPSLOG() TEST ***
21AUG 13:30:16 OPS1000O DIAG: TOTMB.OPSLGTST JB_NM =OPSOSF <== Diagnostic message from my rule. Jobname from RULE.
21AUG 13:30:16 OPS1000O DIAG: TOTMB.OPSLGTST TEST1 =1 <== Diagnostic message from my rule. Count from OPSLOG().
21AUG 13:30:17 OPS1370O OPSOSF X'0000' X'0000' X'0000' NONE 300 TESTGD132 a
21AUG 13:30:17 TESTGD132 applid CICS is no longer short on storage below 16MB. <== Test GOOD WTO. Pass 2.
21AUG 13:30:17 OPS1000O DIAG: TOTMB.OPSLGTST *** BEGIN OPSLOG() TEST ***
21AUG 13:30:17 OPS1000O DIAG: TOTMB.OPSLGTST JB_NM =OPSOSF <== Diagnostic message from my rule. Jobname from RULE.
21AUG 13:30:17 OPS1000O DIAG: TOTMB.OPSLGTST TEST1 =0 <== Diagnostic message from my rule. Count from OPSLOG().
21AUG 13:30:18 OPS1370O OPSOSF X'0000' X'0000' X'0000' NONE 300 TESTBD131 a
21AUG 13:30:18 TESTBD131 applid CICS is under stress (short on storage below 16<== Test BAD WTO. Pass 2.
21AUG 13:30:18 OPS1000O DIAG: TOTMB.OPSLGTST *** BEGIN OPSLOG() TEST ***
21AUG 13:30:18 OPS1000O DIAG: TOTMB.OPSLGTST JB_NM =OPSOSF <== Diagnostic message from my rule. Jobname from RULE.
21AUG 13:30:18 OPS1000O DIAG: TOTMB.OPSLGTST TEST1 =1 <== Diagnostic message from my rule. Count from OPSLOG().
21AUG 13:30:19 OPS1370O OPSOSF X'0000' X'0000' X'0000' NONE 300 TESTGD132 a
21AUG 13:30:19 TESTGD132 applid CICS is no longer short on storage below 16MB. <== Test GOOD WTO. Pass 2.
21AUG 13:30:19 OPS1000O DIAG: TOTMB.OPSLGTST *** BEGIN OPSLOG() TEST ***
21AUG 13:30:19 OPS1000O DIAG: TOTMB.OPSLGTST JB_NM =OPSOSF <== Diagnostic message from my rule. Jobname from RULE.
21AUG 13:30:19 OPS1000O DIAG: TOTMB.OPSLGTST TEST1 =0 <== Diagnostic message from my rule. Count from OPSLOG().
21AUG 13:30:20 OPS1370O OPSOSF X'0000' X'0000' X'0000' NONE 300 TESTBD131 a
21AUG 13:30:20 TESTBD131 applid CICS is under stress (short on storage below 16<== Test BAD WTO. Pass 2.
21AUG 13:30:20 OPS1000O DIAG: TOTMB.OPSLGTST *** BEGIN OPSLOG() TEST ***
21AUG 13:30:20 OPS1000O DIAG: TOTMB.OPSLGTST JB_NM =OPSOSF <== Diagnostic message from my rule. Jobname from RULE.
21AUG 13:30:20 OPS1000O DIAG: TOTMB.OPSLGTST TEST1 =1 <== Diagnostic message from my rule. Count from OPSLOG().
21AUG 13:30:21 OPS1370O OPSOSF X'0000' X'0000' X'0000' NONE 300 TESTGD132 a
21AUG 13:30:21 TESTGD132 applid CICS is no longer short on storage below 16MB. <== Test GOOD WTO. Pass 2.
21AUG 13:30:21 OPS1000O DIAG: TOTMB.OPSLGTST *** BEGIN OPSLOG() TEST ***
21AUG 13:30:21 OPS1000O DIAG: TOTMB.OPSLGTST JB_NM =OPSOSF <== Diagnostic message from my rule. Jobname from RULE.
21AUG 13:30:21 OPS1000O DIAG: TOTMB.OPSLGTST TEST1 =0 <== Diagnostic message from my rule. Count from OPSLOG().
21AUG 13:30:22 OPS1370O OPSOSF X'0000' X'0000' X'0000' NONE 300 TESTBD131 a
21AUG 13:30:22 TESTBD131 applid CICS is under stress (short on storage below 16<== Test BAD WTO. Pass 2.
21AUG 13:30:22 OPS1000O DIAG: TOTMB.OPSLGTST *** BEGIN OPSLOG() TEST ***
21AUG 13:30:22 OPS1000O DIAG: TOTMB.OPSLGTST JB_NM =OPSOSF <== Diagnostic message from my rule. Jobname from RULE.
21AUG 13:30:22 OPS1000O DIAG: TOTMB.OPSLGTST TEST1 =1 <== Diagnostic message from my rule. Count from OPSLOG().
21AUG 13:30:23 OPS1370O OPSOSF X'0000' X'0000' X'0000' NONE 300 TESTGD132 a
21AUG 13:30:23 TESTGD132 applid CICS is no longer short on storage below 16MB. <== Test GOOD WTO. Pass 2.
21AUG 13:30:23 OPS1000O DIAG: TOTMB.OPSLGTST *** BEGIN OPSLOG() TEST ***
21AUG 13:30:23 OPS1000O DIAG: TOTMB.OPSLGTST JB_NM =OPSOSF <== Diagnostic message from my rule. Jobname from RULE.
21AUG 13:30:23 OPS1000O DIAG: TOTMB.OPSLGTST TEST1 =0 <== Diagnostic message from my rule. Count from OPSLOG().
21AUG 13:30:24 OPS3092O READY <== END REXX EXECUTION.