Batch job monitoring with ProcessFlow

 7 Replies
 3 Subscribed to this topic
 52 Subscribed to this forum
Sort:
Author
Messages
Scooter
Veteran Member Send Private Message
Posts: 83
Veteran Member

I'm creating a processflow to monitor Batch jobs completion. 

Using SQL node to query "GEN" table QUEUEDJOB.   

When testing query, field STATUS returns values like [B@f106b0 

First, is this correct table to monitor batch jobs? 

If yes, how can we determine if job went to recovery or completed successfully when

           STATUS has values like [B@f106b0 ?    What am I missing? 

 

Below job PA102 completed successfully but STATUS returns unknown value [B@1bc6b3a  

What does [B@1bc6b3a mean?

Here's our test SQL looking for job PA102 with SQL results:

Success executing SQL: SELECT    USERNAME,   JOBNAME,   R_STATUS     FROM   GEN.QUEUEDJOB     WHERE   JOBNAME = 'PA102'

Number of rows returned: 1

USERNAME, JOBNAME, R_STATUS u0003035  ,  PA102     ,  [B@1bc6b3a

Thanks for your replies and assistance.

Karen Sheridan
Veteran Member Send Private Message
Posts: 142
Veteran Member

We have a flow that does this.  but, we are using the Lawson query node and not SQL.

 

PROD=GEN&FILE=QUEUEDJOB&FIELD=JOBNUMBER;STATUS;JOBNAME;USERNAME;JOBQUEUE;TOKEN;ACTSTARTDATE;ACTSTARTTIME&SELECT=STATUS=34|STATUS=35&OUT=CSV&DELIM=~

 

Scooter
Veteran Member Send Private Message
Posts: 83
Veteran Member
Hi Karen, Thanks for the info. Question - What do STATUS values 34, 35 mean? What is value of STATUS when job completed successfully? Thanks.
Karen Sheridan
Veteran Member Send Private Message
Posts: 142
Veteran Member
I was looking for documentation but not finding it. One of them is "needs recovery" and the other is "invalid parameters". We are on Oracle and I checked the field definition. It is "raw". To use it in SQL you'll need to CAST it. I think I have the number of characters right. CAST(r_status AS VARCHAR(4))
Scooter
Veteran Member Send Private Message
Posts: 83
Veteran Member
Found STATUS codes and translations. See KB 1197107 on Inforxtreme.com. Thanks Karen for your assistance. Have a great day! STATUS value & Translations (There's more statuses. Here's 2 examples.) 0 "running" (0 is Zero) 63 "normal completion"
SWilkins
Advanced Member Send Private Message
Posts: 29
Advanced Member
Here is the SQL we use in our processflow which runs once an hour and then alerts, recovers or deletes the batch job based on status. SELECT (CONVERT(VARCHAR(10),(DATEDIFF(SECOND,ACTSTARTDATE+CONVERT(VARCHAR(10),STUFF(STUFF(FORMAT(ACTSTARTTIME,'000000'),3,0,':'),6,0,':'),108),GETDATE())/86400))+' Days ' +CONVERT(VARCHAR(10),((DATEDIFF(SECOND,ACTSTARTDATE+CONVERT(VARCHAR(10),STUFF(STUFF(FORMAT(ACTSTARTTIME,'000000'),3,0,':'),6,0,':'),108),GETDATE())%86400)/3600))+' Hours ' +CONVERT(VARCHAR(10),(((DATEDIFF(SECOND,ACTSTARTDATE+CONVERT(VARCHAR(10),STUFF(STUFF(FORMAT(ACTSTARTTIME,'000000'),3,0,':'),6,0,':'),108),GETDATE())%86400)%3600)/60))+' Minutes ' +CONVERT(VARCHAR(10),(((DATEDIFF(SECOND,ACTSTARTDATE+CONVERT(VARCHAR(10),STUFF(STUFF(FORMAT(ACTSTARTTIME,'000000'),3,0,':'),6,0,':'),108),GETDATE())%86400)%3600)%60))+' Seconds ') AS "TimeRunning", Q.JOBNUMBER, Q.USERNAME, LTRIM(RTRIM(Q.JOBNAME)) AS JOBNAME, Q.STATUS, CASE WHEN Q.STATUS = '0' THEN 'Running' WHEN Q.STATUS = '30' THEN 'Waiting' WHEN Q.STATUS = '31' THEN 'Waiting Step' WHEN Q.STATUS = '32' THEN 'Waiting On Time' WHEN Q.STATUS = '33' THEN 'Waiting Recovery' WHEN Q.STATUS = '34' THEN 'Needs Recovery' WHEN Q.STATUS = '35' THEN 'Invalid Parameters' WHEN Q.STATUS = '36' THEN 'Queue Inactive' WHEN Q.STATUS = '37' THEN 'On Hold' WHEN Q.STATUS = '60' THEN 'Recurring Skipped' WHEN Q.STATUS = '61' THEN 'Recovery Deleted' WHEN Q.STATUS = '62' THEN 'Cancelled' WHEN Q.STATUS = '63' THEN 'Normal Completion' WHEN Q.STATUS = '80' THEN 'Control Record' ELSE 'Unknown' END AS TextStatus, CASE WHEN Q.STATUS = '33' THEN 'Recover' WHEN Q.STATUS = '34' THEN 'Recover' WHEN Q.STATUS = '35' THEN 'Delete' WHEN Q.STATUS = '36' THEN 'Alert' WHEN Q.STATUS = '37' THEN 'Alert' ELSE 'Alert' END AS ActionGroup, (Q.RSTSTEPNBR+1) AS "JobStepNbr", Q.ACTSTARTDATE, Q.ACTSTARTTIME, Q.STOPDATE, Q.STOPTIME, Q.TOKEN, Q.PROCESSID, Q.QJBSET10_SS_SW, Q.QJBSET12_SS_SW, Q.QJBSET6_SS_SW, Q.QJBSET7_SS_SW, Q.QJBSET8_SS_SW, Q.QJBSET9_SS_SW FROM Lawson_GEN.dbo.QUEUEDJOB Q WHERE Q.STATUS NOT IN ('0','30','31','32','60','61','62','63','80') ORDER BY TimeRunning DESC;
Dave Curtis
Veteran Member Send Private Message
Posts: 136
Veteran Member
We use a webrun node and for the "Web program" we run /lawson-ios/action/ListQueuedJobs?filter=jobStatus%20EQ%20needsRecovery This can be used to pull any status you want to look for.
Scooter
Veteran Member Send Private Message
Posts: 83
Veteran Member
Good stuff to know. Thanks to all!