View previous topic :: View next topic
|
Author |
Message |
awkksgovus
New User
Joined: 22 Jan 2010 Posts: 14 Location: Topeka, KS
|
|
|
|
In short we have this sitituation.
Main PGMA calls PGMB
PGMB (Doesn't use DFHCOMMAREA) returns to PGMA
PGMA calls PGMB (second time)
PGMB returns to PGMA
PGMA calls PGMC (uses commarea) DFHCOMMAREA (working storeage area) is correct before the call
PGMC is invoked - DFHCOMMAREA - does not contain any information that looks like it came from PGMA
The call to PGMC from PGMA looks like this:
EXEC CICS LINK
PROGRAM (PGMC)
COMMAREA (WS-PGMA-DATA)
LENGTH (WS-MAX-LENGTH)
END-EXEC.
It seems from CEDF that the variables for PGMC for COMMAREA and LENGTH is somehow trashed. Via Intertest - Intertest shows data in COMMAREA and LENGTH before the call. |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
Quote: |
PGMA calls PGMC (uses commarea) DFHCOMMAREA (working storeage area) is correct before the call
PGMC is invoked - DFHCOMMAREA - does not contain any information that looks like it came from PGMA
It seems from CEDF that the variables for PGMC for COMMAREA and LENGTH is somehow trashed. |
Personally, I've never heard of communications areas being trashed except by application programmer illogic, but let's start out right with this one.
You use the term DFHCOMMAREA very loosely here. When you say PGMA DFHCOMMAREA is correct before the call, you are referring to WS-PGMA-DATa, right?
What is the definition for WS-MAX-LENGTH? What is the value of WS-MAX-LENGTH? How long is WS-PGMA-DATA?
You are looking at the LINKAGE SECTION variable for DFHCOMMAREA in PGMC when you say it does not contain any information from PGMA?
When you say "from CEDF that the variables for PGMC for COMMAREA and LENGTH is (sic) somehow trashed" -- what do you mean? Is this when CEDF stops on the EXEC CICS LINK, or when PGMC is invoked in its initial state, or when? What are the specific "trash" values? |
|
Back to top |
|
|
awkksgovus
New User
Joined: 22 Jan 2010 Posts: 14 Location: Topeka, KS
|
|
|
|
Quote: |
You use the term DFHCOMMAREA very loosely here. When you say PGMA DFHCOMMAREA is correct before the call, you are referring to WS-PGMA-DATA, right? |
Yes – not really loose as you pass working storage information from PGMA into the DFHCOMMAREA of PGMC.
Quote: |
What is the definition for WS-MAX-LENGTH? |
PIC S9(5) COMP VALUE +12000.
Quote: |
How long is WS-PGMA-DATA? |
+12000
Quote: |
You are looking at the LINKAGE SECTION variable for DFHCOMMAREA in PGMC when you say it does not contain any information from PGMA? |
Correct
Trashed - as in Intertest sees the values (of WS-PGMA-DATA and WS-MAX-LENGTH) before the LINK if you display the value in Intertest. CEDF does not see any value before the LINK.
CEDF:
STATUS: ABOUT TO EXECUTE COMMAND
EXEC CICS LINK PROGRAM
PROGRAM ('PGMC')
COMMAREA ('')
LENGTH (0)
That is what I call trashed from CEDF's view. As Intertest and CEDF have different versions from each other. |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
You should contact CA and IBM about this. There may be some interaction between CEDF and Intertest causing a problem.
I suggest you try commenting out the calls to PGMB and see if the same issue occurs, but as long as WS-PGMA-DATA is in the WORKING-STORAGE section of PGMA there should be addressability to the data. If commenting out the calls and going straight to the LINK to PGMC gives the same results, you definitely need to contact CA and IBM. |
|
Back to top |
|
|
awkksgovus
New User
Joined: 22 Jan 2010 Posts: 14 Location: Topeka, KS
|
|
|
|
Nice idea, it might come to that of contacting either or both CA and IBM. I've chatted some with our systems programmer before I posted here. He was the one that pointed out the differences with CEDF and Intertest.
I'll dig a little more.
Some of the additional background is that we have one program that acts almost the same way from the same menu program(PGMA). However there are about a half dozen programs that are driven by the same menu program that seem to work just fine. |
|
Back to top |
|
|
Ronald Burr
Active User
Joined: 22 Oct 2009 Posts: 293 Location: U.S.A.
|
|
|
|
The LENGTH operand of the LINK command must point to a binary HALFWORD ( i.e., a 2-byte COMP field ) NOT a FULLWORD ( i.e., a 4-byte COMP field ). Hence, your COBOL definition must be S9(4) COMP-5, not S9(5) COMP.
If you pass a 4-byte COMP field ( i.e. S9(5) COMP ), CICS only looks at the first halfword ( 2 bytes ) of the fullword, which will always be x'0000' ( zero ) for any positive value less than 65536. |
|
Back to top |
|
|
awkksgovus
New User
Joined: 22 Jan 2010 Posts: 14 Location: Topeka, KS
|
|
|
|
The S9(4) COMP-5 worked.
As did the hard coding of;
EXEC CICS LINK
PROGRAM (PGMC)
COMMAREA (WS-PGMA-DATA)
LENGTH (+12000)
END-EXEC
Thanks Ronald |
|
Back to top |
|
|
Ronald Burr
Active User
Joined: 22 Oct 2009 Posts: 293 Location: U.S.A.
|
|
|
|
You're more than welcome.
Glad to hear it's now working. |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
Good catch Ronald! |
|
Back to top |
|
|
|