Smart questions
Smart answers
Smart people
INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Member Login

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips now!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

Join Tek-Tips
*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

LINK TO THIS FORUM!

Add Stickiness To Your Site By Linking To This Professionally Managed Technical Forum.
Just copy and paste the
code below into your site.

Partner With Us!

"Best Of Breed" Forums Add Stickiness To Your Site
Partner Button
(Download This Button Today!)

Feedback

"...This forum is the most helpful site I've ever used. I used to use Deja.com; but, this site is better - hands down!..."

Geography

Where in the world do Tek-Tips members come from?

CICS called COBOL module fails with Program Interrupt

rss0213 (Programmer)
30 May 12 15:52
Hi. I have an MQ I-O routine that I want to be callable from a batch or CICS program. So I have coded my first CICS calling module as such:

CODE --> COBOL

CALL MQ-API-PROGRAM USING MQ-DATA-AREA.

The LINKAGE SECTION and PROCEDURE DIVISION header of the called MQ module are coded as such:

CODE --> COBOL

LINKAGE SECTION. *.---------------------------------------------------------------. *| L I N K A G E S E C T I O N *'---------------------------------------------------------------' 01 MQ-DATA-AREA. COPY MQMS. EJECT PROCEDURE DIVISION USING MQ-DATA-AREA.

The 'program interrupt' error I'm getting (CEE3200S error) occurs when the called module moves zeroes to one of the linkage section's data fields. This is the exact line of code where the program interrupt occurs:

CODE --> cobol

MOVE ZEROS TO MQ-RETURN-CODE.

My question is: why is this happening? I've done some research on the web and the closest thing I can find appears to be with the compiler options. I have both modules compiled with the RENT option, AMODE(31), RMODE(ANY). So I'm not sure what else to check to resolve this. Any assistance would be greatly appreciated!

Thanks!
Scott

webrabbit (MIS)
31 May 12 11:20
Did you use the CICS pre-compiler for these programs?
rss0213 (Programmer)
31 May 12 11:24
Yes, it was used for both.

Thanks!
Scott

papadba (MIS)
31 May 12 17:59
What was the interrupt code (from the ceedump)?

What might have corrupted the address of the linkage section?

What else does the code do to fields immediately before the linkage section?
rss0213 (Programmer)
1 Jun 12 8:35
papadba:

interruption code is 0010.

I have no idea what could have corrupted the address of the linkage section. The MOVE statement where the interrupt occurs is the third statement executed in the procedure division. The first two statements are a PERFORM and a DISPLAY. So no other DATA DIVISION fields are updated before the MOVE statement is executed and the program interrupt occurs.

Thanks!
Scott

papadba (MIS)
1 Jun 12 12:06
What is done in the PERFORM?

What happens if some "stub" is called? Replace the MQ program with a small bit of code that will only be entered and exited with no MQ (or any other) work done. Use the same name as the MQ program so the calling program needs no changes. Use the same linkage section as the MQ program uses.

If the stub works correctly, then add the MOVE that currently fails and see what happens.

rss0213 (Programmer)
8 Jun 12 10:45
papadba, I resolved this. I had used the CICS pre-compiler with the CALLED program, which replaced my PROCEDURE DIVISION statement in the program with "PROCEDURE DIVISION USING DFHCOMMAREA", so my linkage was not addressable because it didn't exist!

Thanks for all the feedback. Lesson learned!

Thanks!
Scott

papadba (MIS)
8 Jun 12 15:58
Good to hear it is working - thank you for posting your solutionpipe

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members!

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close