We force Trunc(STD) for all programs in CICS. We have not had any reported problems.
Regards Otto Schumacher Technical Support, CICS EDS, an HP Company Ahold Account 2000 Wade Hampton Blvd. LC1-302 Greenville, South Carolina, 29615 Tel: 864 987-1417 Fax: 864 987-4500 E-mail: otto.schumac...@eds.com We deliver on our commitments so you can deliver on yours. -----Original Message----- From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On Behalf Of Rick Arellanes Sent: Friday, May 01, 2009 12:29 PM To: IBM-MAIN@bama.ua.edu Subject: Re: Enterprise COBOL code generation question On Fri, 1 May 2009 08:38:59 -0500, Chase, John <jch...@ussco.com> wrote: >> -----Original Message----- >> From: IBM Mainframe Discussion List On Behalf Of Farley, Peter x23353 >> >> > -----Original Message----- >> > From: IBM Mainframe Discussion List On Behalf Of Clark Morris >> <Snipped> >> > On 30 Apr 2009 13:00:02 -0700, in bit.listserv.ibm-main you wrote: >> > >> > Try TRUNC(OPT). Trunc STD would require the conversion to decimal >to >> > guarantee that the data fit the picture. TRUNC(BIN) is known and >> > documented to generate less than optimal code. >> >> Son of a gun, that did it. From half a page of code to six >> instructions. >> >> I will have to test this program with TRUNC(OPT) pretty carefully to >> make sure it has no other adverse affects. The doc on OPT is pretty >> clear in its warnings. >> >> And the doc on TRUNC(BIN) does have the phrase "... you can avoid the >> performance overhead of using TRUNC(BIN) ...", implying there is, in >> fact, a performance penalty for using it. >> >> Thanks for pointing out the benefit of TRUNC(OPT) to me. > >But then there's this in the "Notes" for TRUNC in the Installation & >Customization Guide: > >" 2. TRUNC=BIN is the recommended option when interfacing with other >products that have S/390-format binary data (such as CICS, DB2, FORTRAN, >and PL/I). This is especially true if there is a possibility of having >more than 9 digits in a fullword or more than 4 digits in a halfword." > >So, we're stuck with TRUNC(BIN) in CICS, where arguably we'd want the >"best" performance. :-( > > -jc- > It looks like we may have missed an update to the Customization Guide. Please see the Programming Guide, which was updated to say: Recommendations: TRUNC(BIN) is the recommended option for programs that use binary values set by other products. Other products, such as IMS, DB2, C/C++, FORTRAN, and PL/I, might place values in COBOL binary data items that do not conform to the PICTURE clause of the data items. You can use TRUNC(OPT) with CICS programs as long as your data conforms to the PICTURE clause for your BINARY data items. You might want to read the Enterprise COBOL Version 3 Release 1 Performance Tuning Paper at: http://www.ibm.com/software/awdtools/cobol/library/ to read more about this. It says: As long as your usage of all binary (COMP) data items in the application conforms to the PICTURE and USAGE specifications, you can use TRUNC(OPT) to improve transaction response time. This is recommended in performance sensitive CICS applications. If your usage of any binary data item does not conform to the PICTURE and USAGE specifications, you can either use a COMP- 5 data type or increase the precision in the PICTURE clause instead of using the TRUNC(BIN) compiler option. Note that the CICS translator does not generate code that will cause truncation and the CICS co-processor uses COMP-5 data types which does not cause truncation. If you were using NOTRUNC with your OS/VS COBOL programs without problems, TRUNC(OPT) on IBM Enterprise COBOL behaves in a similar way. For additional information on the TRUNC option, please refer to the compiler options section of this paper. Rick Arellanes (IBM COBOL Development and Performance) ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO Search the archives at http://bama.ua.edu/archives/ibm-main.html