Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations bkrike on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

DB2 update committed on abend 1

Status
Not open for further replies.

MarcLodge

Programmer
Feb 26, 2002
1,886
GB
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
 
Hi Marc,

I'm wondering if ABTERMENC may be the cause of your problem. The choices are ABEND or RETCODE. If RETCODE was chosen as the installation or run time default, no abend occurs.

It's related to abends, whereas TERMTHDACT is related to the documentation of an abend (DUMP or TRACE). These 2 seem to be the only options possibly related to the problem.

The link below lists the LE Options available. You've probably read this, but it may be of interest to those unfamiliar with the issue.


Regards, Jack.
 
Thanks Jack,
You were spot on. I had seen ABTERMENC too, but had, amongst everything else, had not appreciated it's significance. Our site had it set as RETCODE. I managed to get hold of the source and compiled a user override CEEUOPT which I then linked into my program, and bingo, the update was not committed. I'm now trying to find out why it was set this way in the first place!

Thanks again Jack.
Marc
 
Hi Marc,

Glad it helped. A surprising lot of shops have made the wrong choice for that option, probably because it is the "factory" default. The sysprogs probably figure if IBM chose it, it must be the correct choice.

The manual says they changed the default to ABEND in V2R9.

In one shop, before I was even aware of LE Options, I misspelled a DDNAME. The Job ran to EOJ and the dataset was nowhere to be found. I later (much later) learned that the data was written to a temp ds created by LE.

Regards, Jack
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top