IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Problem with the EXEC CICS SEND


IBM Mainframe Forums -> CICS
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
jagadeeshkumar

New User


Joined: 17 May 2007
Posts: 11
Location: Chennai, India

PostPosted: Tue Jul 08, 2008 12:41 am
Reply with quote

Hi,

I am converting a cobol program from OS/VS to enterprise cobol. The program had the following piece of code.

EXEC CICS SEND
MAP ('PCXEI01')
MAPSET ('PCXEI00')
SET (ADDRESS OF TIOA-PTR)
END-EXEC.

where TIOA-PTR is a BLL-CELLS pointer.

I changed this to

EXEC CICS SEND
MAP ('PCXEI01')
MAPSET ('PCXEI00')
SET (ADDRESS OF RET-PAGE)
END-EXEC.

where RET-PAGE is the data structure pointed by the TIOA-PTR. I commented all the BLL-CELLS pointers.

When I execute this program, the address which is set to RET-PAGE is not valid. CICS says it could not determine the address.

Is there any ways to fix this??
Back to top
View user's profile Send private message
Earl Haigh

Active User


Joined: 25 Jul 2006
Posts: 475

PostPosted: Tue Jul 08, 2008 1:42 am
Reply with quote

based on your limited description.

Why not move the mapset area to the COBOLworking storage area
and quit using the linkage section.
Back to top
View user's profile Send private message
jagadeeshkumar

New User


Joined: 17 May 2007
Posts: 11
Location: Chennai, India

PostPosted: Tue Jul 08, 2008 1:55 am
Reply with quote

Hi,

The MAPSET PCXEI01 is defined in the working storage section. The data structure RET-PAGE is in the linkage section. The program looks like


WORKING-STORAGE SECTION.

01 PCXEI01O.
02 FILLER PIC X(12).
02 FILLER PICTURE X(2).

. . . .


LINKAGE SECTION.

COPY DLIUIB.
01 RET-PAGE.
05 TIOA-ADDR PIC S9(8) COMP.


PROCEDURE DIVISION.


. . . . .

EXEC CICS SEND
MAP ('PCXEI01')
MAPSET ('PCXEI00')
SET (ADDRESS OF RET-PAGE)
END-EXEC.
Back to top
View user's profile Send private message
Garry Carroll

Senior Member


Joined: 08 May 2006
Posts: 1193
Location: Dublin, Ireland

PostPosted: Tue Jul 08, 2008 12:53 pm
Reply with quote

Quote:
EXEC CICS SEND
MAP ('PCXEI01')
MAPSET ('PCXEI00')
SET (ADDRESS OF TIOA-PTR)
END-EXEC.


My reading of the APRM fails to show SET parameter as an option on EXEC CICS SEND MAP .

Garry.
Back to top
View user's profile Send private message
rpuhlman

New User


Joined: 11 Jun 2007
Posts: 80
Location: Columbus, Ohio

PostPosted: Tue Jul 08, 2008 3:42 pm
Reply with quote

Actually, SET is a valid option of the SEND command:

Quote:
SET(ptr-ref)
specifies the pointer to be set to the address of the input or output data.
The SET option specifies that completed pages are to be returned to the application program. The pointer is set to the address of a list of completed pages. See the description of the SET option in the section on full BMS in Standard BMS the CICS Application Programming Guide for more guidance about using the SET option.

The application program regains control either immediately following the SEND MAP command (if the current page is not yet completed), or at the label specified in a HANDLE CONDITION RETPAGE command, if the page has been completed.

If TIOAPFX=YES is specified in the map definition, the pointer returned contains the address of the TIOA prefix. The user data starts at offset X'0C' from the start of the TIOA prefix.


Quoted from the CICS TS/zOS Language Reference. In Jagadeesh's case, SET is now being used out of context. Jagadeesh, remove the SET option from the SEND command and the RET-PAGE pointer in your linkage section. If you are still having issues with the SEND command, please let us know what the response code is along with any other diagnostic info.

Rick
Back to top
View user's profile Send private message
Earl Haigh

Active User


Joined: 25 Jul 2006
Posts: 475

PostPosted: Tue Jul 08, 2008 7:28 pm
Reply with quote

You say mapset is defined in working storage ,

then

rpuhlman has it correct
remove the set command
Back to top
View user's profile Send private message
jagadeeshkumar

New User


Joined: 17 May 2007
Posts: 11
Location: Chennai, India

PostPosted: Tue Jul 08, 2008 9:26 pm
Reply with quote

Hi,

I cannot remove the SET option because the program uses the address which is set here. Basically, this program reads a database , populates a map and sends the data to printer. In procedure division, i have


EXEC CICS SEND
MAP ('PCXEI01')
MAPSET ('PCXEI00')
SET (ADDRESS OF RET-PAGE) --> Get the address to RET-PAGE
END-EXEC.

After this it assigns this address to a data structure TIOA-DATA in Linkage-Section.

EXEC CICS INQUIRE TERMINAL(EIBTRMID)
PRINTER(PCIASDPR) --> Get the address of Printer
END-EXEC.

EXEC CICS WRITEQ TD --> send information from linkage section to printer.
QUEUE (PCIASDPR)
FROM (TIOA-DATA)
LENGTH (TIOA-LENGTH)
END-EXEC.

So, If I remove the SET boption , I cannot get the address of the output map and use it in the WRITEQ command :-(
Back to top
View user's profile Send private message
rpuhlman

New User


Joined: 11 Jun 2007
Posts: 80
Location: Columbus, Ohio

PostPosted: Tue Jul 08, 2008 10:26 pm
Reply with quote

Jagadeesh,

This is info you should have provided from the beginning of your post. I'm extremely busy with work right now, but I will look into this later on tonight. Without looking at your code, there are too many questions remaining. I recommend that you speak with your SYSPROG in the meantime. Earl if you can jump in here, go for it. I will check back later on.

Rick
Back to top
View user's profile Send private message
Earl Haigh

Active User


Joined: 25 Jul 2006
Posts: 475

PostPosted: Wed Jul 09, 2008 1:48 am
Reply with quote

HUH ? THIS IS BASIC CICS PROGRAMMING STUFF.

JUST CHANGE WHERE YOU SENDING DATA FROM FOR THE TDQ WRITE.

SOMETHING LIKE THIS:

MOVE LENGTH OF PCEX101O TO WS-MAP-LENGTH.
EXEC CICS WRITEQ TD
QUEUE(PCIASDPR)
FROM (PCEX101O)
LENGTH (WS-MAP-LENGTH)
END-EXEC.

AS RPUHLMAN SUGGESTED,

TALK TO YOUR CICS SYSTEMS PROGRAMMER


BY THE WAY
EXEC CICS INQUIRE TERMINAL(EIBTRMID)
PRINTER(PCIASDPR) --> Get the address of Printer
END-EXEC.


THIS DOES NOT GET THE ADDRESS OF PRINTER, IT ACQUIRES
THE 4 CHARACTER ASSOCIATED PRINTER ID.
Back to top
View user's profile Send private message
jagadeeshkumar

New User


Joined: 17 May 2007
Posts: 11
Location: Chennai, India

PostPosted: Wed Jul 09, 2008 7:54 am
Reply with quote

Thank you very much for the suggestions. I ll try this first up tomorrow and see what happens. I spoke to my system programmers and they are also working on it.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> CICS

 


Similar Topics
Topic Forum Replies
No new posts Using API Gateway from CICS program CICS 0
No new posts Map Vols and Problem Dataset All Other Mainframe Topics 2
No new posts Calling an Open C library function in... CICS 1
No new posts How to 'Ping' a CICS region in JCL CICS 2
No new posts JCL EXEC PARM data in C Java & MQSeries 2
Search our Forums:

Back to Top