View previous topic :: View next topic
|
Author |
Message |
ravi1
New User
Joined: 27 Apr 2006 Posts: 11
|
|
|
|
I have defined the DFHCOMMAREA in the linkage section as X(49). The return statement in my program passes the COMM area data which is of size greater than 49. But the program does not abend and seems to work just fine with access to all the data which was sent last time using the following Move statement.
MOVE DFHCOMMAREA(1:EIBCALEN) TO WS-WORKAREA
How can this work? Is the size defined in the linkage section of no significance?
Thanks in Advance,
Ravi |
|
Back to top |
|
|
William Thompson
Global Moderator
Joined: 18 Nov 2006 Posts: 3156 Location: Tucson AZ
|
|
|
|
True, the size of the 01 in linkage is of no real significance. The data description in linkage allows the program to access the data directly. The main use it the address of the 01 dataname, a pointer to the data. Your MOVE take advantage of that address and relies on CICS for the length. |
|
Back to top |
|
|
TG Murphy
Active User
Joined: 23 Mar 2007 Posts: 148 Location: Ottawa Canada
|
|
|
|
There are LE runtime options that, when turned on, will cause LE to verify that your reference modifications are within the bounds of the variable referenced.
In other words, I think your code will abend if the system administrators were to turn these options on. Where I work, they turned them on about 4-5 years ago. I just made a trip through Abend-FX and was able to find a 1072 (IGZ0072S).
Safer and cleaner to make sure your DFHCOMMAREA is big enough to reference the entire area. Even if it works for you now... |
|
Back to top |
|
|
|