What do you want to know about?
When we started this blog it was in the hope that it would be a useful place for CICS users to interact a little more directly with the IBM CICS team. So if you have any burning/intriguing questions you would like to know the answer to (no matter how bizarre) or any topic you would like us to talk more about then simply add it as comment to this post to let us know. If you can truly stump us, I’ll personally send you one of the “I love CICS” stickers that are lying on my desk to make up for it. What a prize eh! I only have a limited stash of them so get your questions in fast.
We are pretty much posting daily to the blog at the moment but would it be of use for us to post a summary of the weekly posts to the mailing-list? YES!
Hello,
I’m sure I knew the answer to this question at one time but I am not able to recall that bit of memory right now. I have a transaction that is abending with a mapfail when we run it alone or under Xpediter/CICS, but if I use CEDF to debug the transaction I don’t get the same results. The COBOL code we are failing on is:
00002-MAIN-CONTINUE.
EXEC CICS RECEIVE
SET(ADDRESS OF DFHTIOA)
LENGTH(WS-TIOALEN)
END-EXEC.
EXEC CICS RECEIVE
MAPSET(WS-MAPSET-NAME)
MAP(WS-MAP-NAME)
FROM(DFHTIOA)
LENGTH(WS-TIOALEN)
SET(ADDRESS OF MAPAREA)
END-EXEC.
When under CEDF I see:
STATUS: COMMAND EXECUTION COMPLETE
EXEC CICS RECEIVE
SET (X’00101DA8′) AT X’17109CE0′
LENGTH (1280)
OFFSET:X’02A2BA’ LINE:34573 EIBFN=X’0402′
RESPONSE: EOC EIBRESP=6
Under Xpediter/CICS I don’t see a length or valid TIOA area:
02 WS-MAP-NAME X(7) MSRAA1
01 MAPAREA X(3000) LINKAGE SECTION 01 PTR=0
02 WS-TIOALEN S9(4) COMP +0000
02 WS-MAPSET-NAME X(7) MSRAA
01 DFHTIOA GROUP ……………………
—— ———————————————— Before PSRAA.38809 ->
038802 *EXEC CICS RECEIVE
038803 * MAPSET(WS-MAPSET-NAME)
038804 * MAP(WS-MAP-NAME)
038805 * FROM(DFHTIOA)
038806 * LENGTH(WS-TIOALEN)
038807 * SET(ADDRESS OF MAPAREA)
038808 * END-EXEC.
=====> Call ‘DFHEI1′ using by content x’1802f80007010000000505000000
038810 – ’20f3f4f6f2f9404040′ by reference WS-MAP-NAME by reference
038811 ADDRESS OF MAPAREA by reference WS-TIOALEN by reference
038812 WS-MAPSET-NAME by reference DFHTIOA end-call.
I ran a trace on the transaction to try to figure out why I’m getting a mapfail and see the following entries:
AP 00E1 EIP ENTRY RECEIVE-MAP REQ(0004) FIELD-A(17131CB0 ….) FIELD-B(09001802 ….)
TASK-01133 KE_NUM-0053 TCB-QR /009D96D0 RET-9852E7D8 TIME-12:08:
AP 00FA BMS ENTRY MAP-FROM IN MAP MAPSET REQ(0003) FIELD-A(00000505 ….) FIELD-B(00000020 ….)
TASK-01133 KE_NUM-0053 TCB-QR /009D96D0 RET-96648B06 TIME-12:08:
AP 00FA BMS EXIT CANNOT-MAP-I/O-AREA REQ(0405) FIELD-A(04000000 ….) FIELD-B(00000000 ….)
PG 0700 PGHM ENTRY – FUNCTION(INQ_CONDITION) CONDITION(24)
PG 0701 PGHM EXIT – FUNCTION(INQ_CONDITION) RESPONSE(OK) ABEND_CODE()LABEL(1759D078) USERS_RSA_POINTER
CURRENT_EXECUTION_KEY(90) STATUS(HANDLED) GOTOL(5)
AP 00E1 EIP EXIT RECEIVE-MAP MAPFAIL REQ(05F4) FIELD FIELD-A(00000000 ….) FIELD-B(00241802 .
AP 1940 APLI ENTRY – FUNCTION(GOTO) LABEL(1759D078) LANGUAGE(COBOL) USERS_RSA(1 7131CB0)
Can you give me some direction on how to debug this “problem”, please?
Thanks!
Hi Joni,
I would check that the TIOA you get from the first receive is actually getting something sensible and that it looks like the mapset you are subsequently trying to receive into. Also check that you have a valid AID.
If it was me, I’d probably look at the AP FC90 trace entries to see what was being received from the terminal. You could also put on CICS EI level 1,2 so you can see how the arguments are being set on the EXEC CICS calls (e.g. if the input length on the RECEIVE MAP is 0) – But based on the fact that Xpediter shows a 0 WS-TIOALEN, you aren’t receiving any input from the device.
Cheers … Grant.
Grant,
Thanks for the response and suggestions. My other question (besides how to debug this thing) is why does the transaction successfully run when I am in CEDF but not any other time? Is there a clue in there somewhere on how CEDF works?
Thanks,
Joni
Hi Joni,
Well as CEDF is playing around with the TIOAs, it might be shielding you from the root cause of the problem. Bit of a long shot, but have you checked that the MAP is defined with TIOAPFX=YES on your DFHMSD?
Cheers .. Grant.
Hi Grant,
I checked and TIOAPRF=YES on the map. I am just stumped as to WHY the transaction will show a valid TIOALEN & DFHTIOA when I test under CEDF but it shows a length of 0 in the trace when I execute the transaction regularly. I need to give the developer some suggestions on how to make transaction work, do you have any ideas? He is issuing a “RETURN TRANSID(xxxx) IMMEDIATE” command to get to the point where the new transaction fails without CEDF running.
Thanks for your help.
Joni
Hi Joni,
I don’t know why it’s working with CEDF, the only explanation I have is what I mentioned before is that CEDF does things with TIOAs (do you get the same result with single and dual screen CEDF).
Do you actually need to do the two receives? e.g. if you RECEIVE straight into the MAP does it change anything? e.g. why are you doing the 1st RECEIVE, then a RECEIVE FROM? Does this happen with any MAP, or is it just this one? What 3270 emulator is being used? Is it the same maint level as others? Did you check out the AP FC90 traces, to see the 3270 data stream being sent (e.g. from the send map) through to the receive from the device?
Sorry if this isn’t helpful, but if anyone else wants to leap in with suggestions, please do.
Cheers … Grant.
Thanks for the suggestions, Grant. I asked the developer to take a look at your questions.
Joni