Hi all,
I have a mainframe cobol program running under LE which on entry issues an update to a DB2 checkpoint table. This update is not committed until the checkpoint threshold is reached. Before this happens the program attempts a
COMPUTE WS-FIELD = (FUNCTION DATE-OF-INTEGER(WS-CCYYMMDD) + 1)
This is attempting to get the date following the given date (as an integer). This function only allows dates from 1600-01-01 up to 9999-12-31. If a date prior to 1600-01-01 is given, the program abends.
The abend is a LE abend which is very helpful and gives a good descriptive error message. Unfortunately, although the job appears to abend (Return Code 3000), the DB2 subsystem is not made aware of this, and the update is committed. This leads to much agro in restoring tables etc.
The way round it is to chnage the program to validate the date, which it does and the problem has gone away. But... I've read up some on the LE run time options and it appears that these can be set different ways, and this is where I suspect the real error lies.
Has anybody had any dealings with these, and knows of what I ought to be setting them as? I think that the ones I'm interested in are TRACE, and TERMTHDACT, but I'm not over sure as to what I should be setting them to. In the end I suspect that this is going to be a sysprog problem as it should really be fixed at an installation level rather than just for my program, but I'd like to know if anybody's dabbled with this.
Thanks
Marc
I have a mainframe cobol program running under LE which on entry issues an update to a DB2 checkpoint table. This update is not committed until the checkpoint threshold is reached. Before this happens the program attempts a
COMPUTE WS-FIELD = (FUNCTION DATE-OF-INTEGER(WS-CCYYMMDD) + 1)
This is attempting to get the date following the given date (as an integer). This function only allows dates from 1600-01-01 up to 9999-12-31. If a date prior to 1600-01-01 is given, the program abends.
The abend is a LE abend which is very helpful and gives a good descriptive error message. Unfortunately, although the job appears to abend (Return Code 3000), the DB2 subsystem is not made aware of this, and the update is committed. This leads to much agro in restoring tables etc.
The way round it is to chnage the program to validate the date, which it does and the problem has gone away. But... I've read up some on the LE run time options and it appears that these can be set different ways, and this is where I suspect the real error lies.
Has anybody had any dealings with these, and knows of what I ought to be setting them as? I think that the ones I'm interested in are TRACE, and TERMTHDACT, but I'm not over sure as to what I should be setting them to. In the end I suspect that this is going to be a sysprog problem as it should really be fixed at an installation level rather than just for my program, but I'd like to know if anybody's dabbled with this.
Thanks
Marc