I’m with Natural for some decades, so to place my question is somewhat painful.
Working on IBM z/OS, I have to tune a Batch Programm.
To get a baseline I determinted the Elpased time as usual:
at the begin
at the end
TD_ := *TIMD (START.)
with TD_ defined as
2 TD_ N 7 /*TIMD
R 2 TD_ /* BEGIN REDEFINE: TD_
3 TDHH_ N 2
3 TDMM_ N 2
3 TDSS_ N 2
3 TDTS_ N 1
Inspecting the log I see: “Elapsed time: 19:11:39.2”
Checking the JES2 Job Log
Job Start: 13.52.46 JOB39601 ---- THURSDAY, 09 JUL 2015 ----
Natural Step started 13.56.48
Natural Step terminated
09.08.28 JOB39601 ---- SATURDAY, 11 JUL 2015 ----
Based on this *TIMD() embezzled 24 hours.
I checked all available documentation, but I was unable to find any Limitation for *TIMD().
Is the a Maximum for *TIMD()?
Any Feedback is welcomed.
Thx for the reply. I’m familiar with the coding you proposed.
My initial question is still open: Is there a 24 hour limitation in *TIMD()?
As mentioned: I checked all available documentation starting with an antique Natural 2.2 Manual from 1993 up to the lastet documentation. I didn’t find any statement about a limitation.
Based on the structure of *TIMD() [HHIISST] my assumption was that the maximum elapsed time could be 99:59:59.9
Any way, thx for your hint.
Neither have I seen anything that defines a maximum value for HH. The only clue is NAT1143 Input does not correspond to input edit mask. You get this if you try to convert an hour value greater than 24.
DEFINE DATA LOCAL
1 #T (T)
1 #A (A8) INIT <'25:13:14'>
MOVE EDITED #A TO #T (EM=HH:II:SS)
*TIMD must be a T-format value and the time portion of a T-format cannot exceed 24 hours.
This may be the reason. So my current understanding is: There is a 24 hour limitation deep inside the natural runtime system where *TIMD() is evaluated.
For time being, I switch to *TIMX() and calculate the elapsed time myself.