On 30 Aug 2006 00:49:08 -0700, in bit.listserv.ibm-main you wrote:

>Hello John,
>
>One "thing" which happened to our CICS transactions after we increased our 
>ECSA size were "random" wild branches.
>
>Not every instance of a transaction would break.....but many did.
>
>Why?
>
>Increasing our ECSA size moved the EDSA up the region, so that many 
>transaction programs etc were being loaded higher up in memory.
>
>The transaction that broke were accessing storage above "1,000,000,000".
>
>The transactions, written in COBOL, were making use of the ADDRESSING (I 
>think I have that correct), but had been compiled with TRUNC(OPT). 
>The COBOL variable to hold the address was adequate for a hex number, but 
>were being truncated at the high order because the arithmetic was being 
>performed in decimal. Addresses greater than 9 digits were being used.
>
>We re-IPLd with smaller ECSA to allow more of the transactions to 
>complete....until all affected programs had been recompiled with TRUNC(BIN).

Was the code moving non-decimal numbers into the fields used for
addresses.  I did quite a bit of experimentation with TRUNC(OPT)
versus TRUNC(BIN) and found the following:

1.  If you display a field that is USAGE BINARY (or COMP) truncation
is according to PICTURE.

2.  If one of the fields involved is not USAGE BINARY, truncation is
according to picture even if the move is from S9(11) USAGE
PACKED-DECIMAL to S9(9) USAGE BINARY.

3.  If all fields involved are USAGE BINARY and literals are assumed
USAGE BINARY, truncation is at the word boundary rather than by
picture.  A move from S9(8) BINARY to S9(11) BINARY followed by a
DISPLAY of the S9(11) BINARY field showed that.

4.  With the release of COBOL for MVS and VM that I was using, USAGE
BINARY caused all arithmetic to be done in PACKED-DECIMAL thus
involving CVD, do the arithmetic, CVB.  This is supposed to have
gotten better with subsequent releases.

5.  Usage of S9(8) USAGE BINARY versus S9(9) USAGE BINARY avoided
double precision arithmetic when using TRUNC(OPT).

6  With new compilers changing all USAGE BINARY and USAGE COMP fields
to USAGE COMP-5 should allow use of TRUNC(OPT) safely.

In another posting I will note some changes to the COBOL compiler that
could be done to improve efficiency and allow more efficient code to
be written.

>
>We were able to expand our ECSA safely about 6 months later.
>
>Regards
>Bruce Hewson
>
>----------------------------------------------------------------------
>For IBM-MAIN subscribe / signoff / archive access instructions,
>send email to [EMAIL PROTECTED] 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 [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to