Normally we can trigger an On Do Action based on string found in the Job Output.
But we would like to do the same for a Job log, that feature doesn’t exist, but there is a way to make it working.
Let’s see how to proceed.
Introduction
For example: as a use case:
See the blog How to automate a kill of one or several executing jobs in AJF at specific Date/Time at once, when the a running job is killed in purpose with the ctmkilljob utility, the job ends with a NOTOK State (red).
The issue of that, if we manage a On-Do Action on NOTOK situations, those Actions will be triggered.
We can avoid triggering those On-Do Actions for this specific context (job killed) by following the procedure below.
In this example, we will re-use the same case which is to automate a Kill of a job from another job:
Preparation
Define 2 jobs
- Ctmtst-Job-Killer: Job which runs ctmkilljob utility to end another job
- Ctmtst-To-Kill: Job with short name to be killed but should end OK
=> Its Output should contain the text in the script

See below Job log
22:36:08 1/23/2022 STARTED AT 20220123223607 ON ctmsrv.domain.com 5101 22:36:08 1/23/2022 JOB STATE CHANGED TO Executing 5120 22:36:26 1/23/2022 JOB KILLED BY USER [email protected] 5409 22:36:27 1/23/2022 ENDED AT 20220123223627. OSCOMPSTAT 1. RUNCNT 1 5100 22:36:27 1/23/2022 Message from Agent: /opt/cmagt/ctm/sysout/Ctmtst_To_Kill.LOG_00iyte_00001 5169 22:36:27 1/23/2022 ENDED NOTOK. NUMBER OF FAILURES SET TO 1 5134
As we wanted to kill the job in purpose, then we would like to trigger the Set To OK in On Do Action
Solution
- Capture the Job log with the ctmlog command, the result will be append to the Job ouput
- Last step, is to define the On Do Action Set to OK for this specific context (Job KILLED)
ctmlog listord %%ORDERID %%DATE 0000 %%DATE 2359
The job output will contain its regular output and at the end also the job log as the result of ctmlog command
+ echo Start Job Start Job + sleep 300 Date: 23-01-2022. Page: 1 Date: 23-01-2022. Page: 1 CTMLOG REPORT from 20220123 000000 to 20220123 235959 Orderno : 0iyte (*884930) +------------------------------------------------------------------------------------------------- |Date|Time|Jobname |Order|SS|MID |Message +------------------------------------------------------------------------------------------------- |0123|2236|Ctmtst-To-Kill_1 |0iyte|CS|5065|ORDERED JOB:31790; DAILY FORCED, ODATE 20220123 |0123|2236|Ctmtst-To-Kill_1 |0iyte|SL|5105|SUBMITTED TO [email protected] |0123|2236|Ctmtst-To-Kill_1 |0iyte|TR|5101|STARTED AT 20220123223607 ON [email protected] |0123|2236|Ctmtst-To-Kill_1 |0iyte|TR|5120|JOB STATE CHANGED TO Executing |0123|2236|Ctmtst-To-Kill_1 |0iyte|UT|5409|JOB KILLED BY USER [email protected]
Larypandy
30.05.2024I tried this solution but ctmlog command in the post-execution field is not working. Ctmlog is not being recognize. Do you have to configure anything else to make it working?