0

I have a cobol batch program that uses CICS LINK to call a CICS program via EXCI. The CICS program invokes a webs service and parses result into a copybook that is then passed back in the commarea of the LINKAGE SECTION.

Everything seems to work fine and the data the batch program needs this there, but I have an ASRA abend when the EXCI response codes are checked. The CICS log reports the following

DFHAC2236 Transaction CSMI abend ASRA in program IOCCBR term RG1. Updates to local  recoverable
 resources will be backed out.

I have researched the DFH*** code and ASRA in general, but found no answers. Dumps are not common practice with company but I do have the abend aide available.

EXEC CICS LINK PROGRAM('IOCCBR')    
  APPLID('PRODAOR1')                
  LENGTH(LENGTH OF WS-COMMAREA)     
  COMMAREA(WS-COMMAREA)             
  RETCODE(WS-EXCI-EXEC-RETURN-CODE) 
  SYNCONRETURN                      
END-EXEC.                           

Any thoughts would be greatly appreciated.Thanks

Bruce Martin
  • 10,358
  • 1
  • 27
  • 38
Justin Cox
  • 326
  • 4
  • 22
  • @BillWoodger What else are you looking for that I can "gave":) you? I didn't think abend-aide data would be helpful. When I use Expediter the abend gets thrown on goback or cics return command. – Justin Cox Aug 21 '13 at 19:04
  • 1
    I keep forgetting to mention that I'd not start a program-name with IO, or indeed anything starting with I. Too big a danger of an accidental clash with system-software names. A lot of IBM stuff starts with I and IO is too "obvious" for something to do with... I/O. – Bill Woodger Aug 22 '13 at 08:47
  • @BillWoodger I will heed this advice, the IOC stands for "Information Ordering Center", I will have the name changed to some with less conflict. Thanks. – Justin Cox Aug 22 '13 at 12:06

2 Answers2

0

I believe you must specify both PROGRAM and TRANSID in your LINK and the specified TRANSID must be defined to CICS as executing DFHMIRS, the PROGRAM is the program you want to execute.

cschneid
  • 10,237
  • 1
  • 28
  • 39
  • Thanks for answering. I have done this in the past with just a PPT entry on CICS and no TRANSID on the LINK command. I don't see any differences with this one. I added my LINK above. – Justin Cox Aug 21 '13 at 17:11
  • Systems tells me we use default communication on this type of link. – Justin Cox Aug 21 '13 at 19:00
0

Lesson learned, the batch program was written by someone else and the commarea of the batch was less than the cics program was returning.

My co-worker had a commarea of 108, just enough to pass the copybook info, my CICS program had a LINKAGE SECTION commarea of 2750 cause I reused code from another EXCI/INVOKE WEBSERVICE program. I believe this is why it abended on the return but the data was there, I filled out the 108 bytes correctly but it couldn't handle the extra 2642 bytes being shoved in his WS commarea

Justin Cox
  • 326
  • 4
  • 22
  • You can Accept your own answer once you are happy that it resolves your problem. So you identified that something after the commarea in the batch program's WORKNG-STORAGE got clobbered? – Bill Woodger Aug 21 '13 at 21:52
  • @BillWoodger Yeah, my co-worker had a commarea of 108, just enough to pass the copybook info, my CICS program had a LINKAGE SECTION commarea of 2750 cause I reused code from another EXCI/INVOKE WEBSERVICE program. I believe this is why it abended on the return but the data was there, I filled out the 108 bytes correctly but it couldn't handle the extra 2642 bytes being shoved in his WS commarea.The problems that come with shared development! Thanks for looking. – Justin Cox Aug 22 '13 at 12:04
  • Excellent. If you put the body of the comment into your answer and the Accept it, it tidies the thing up nicely and can help other people in the future. – Bill Woodger Aug 22 '13 at 12:34