Portal | IBM Manuals | Downloads | Products | Refer | Info | Programs | JCLs | Forum Rules*| Site Map | Mainframe CD 
IBMMAINFRAMES.com - IBM Mainframe Support Forums Index
 
Register
 
IBMMAINFRAMES.com - IBM Mainframe Support Forums Index FAQ Search Memberlist Usergroups Profile Log in to check your private messages Log in
 
How to pass data thru COMMAREA more than 64kb
Goto page Previous  1, 2
 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> CICS
Author Message
sarma Kappagantu

New User


Joined: 17 Mar 2005
Posts: 22
Location: Bangalore

PostPosted: Fri Mar 18, 2005 10:11 am    Post subject:
Reply with quote

Lentgth of commarea is not 64K, because the variable used is S9(04) COMP, which can not hold a value higher than 32,677.

Coming to the other issue of using GETMAIN and passing the pointer to pass a larger than 24KB, data - It is OK as long as the two programs communicating are in the same CICS region. However, it fails the moment the other program happens to be in a different CICS region.
Back to top
View user's profile Send private message
References
UNIVERSE

New User


Joined: 15 Mar 2005
Posts: 11
Location: Mumbai

PostPosted: Fri Mar 18, 2005 4:25 pm    Post subject: Re: difference betweem commarea & dfhcommarea
Reply with quote

If ur cics Program is not calling any program/ Invoking any Transaction, there is no need to go for the concept DFHCOMMAREA & LINKAGE SECTION. It becomes the normal CICs pgm.

Regards
UNIVERSE

[quote="ganmain"]HI,
I want to know why we are declaring commarea in both working
storage & linkage section(dfhcommarea).

if my cics program is not calling another program
only commarea declaring in working storage section is enough
or
we have to declare both in working storage & linkage section ?

please clarify this doubt[/quote]
Back to top
View user's profile Send private message
sarma Kappagantu

New User


Joined: 17 Mar 2005
Posts: 22
Location: Bangalore

PostPosted: Fri Mar 18, 2005 7:02 pm    Post subject:
Reply with quote

1. If ur cics Program is not calling any program/ Invoking any Transaction, there is no need to go for the concept DFHCOMMAREA & LINKAGE SECTION. It becomes the normal CICs pgm.

Ans: I believe, generally one will encounter only pesudo-conversational programs and not conversational programs. In a pesudo-conversational program, one should terminate a transaction after sending a screen and specify the next tran to be invoked. Hence, if you wish to write any reasonable program, even with a single screen, you will have to use COMMAREA and DFHCOMMAREA.


2. I want to know why we are declaring commarea in both working
storage & linkage section(dfhcommarea).

Ans: There are a few points to remember here.
(a) In CICS we can pass only one variable to the other program / transaction.

(b) The receiving variable (that receives data from other program / transaction is a variable called DFHCOMMAREA in LINKAGE section. (So, if your program is going to receive some data from other programs / transactions, you shold define DFHCOMMAREA in linkage section.)

(c) generally we do not manipulate DFHCOMMAREA. Another variable is created in WORKING-STORAGE section with the same size as DFHCOMMAREA and data is moved into that variable, before the program uses it and manipulates it.

(d)To pass data from your program to another program, you should have one variable in your program that can hold data that can be used in the XCTL / LINK / RETURN command's COMMAREA option, to pass data. Name of this variable can be any thing, as long as it is an acceptable variable in the host language.


Hence, you are using DFHCOMMAREA variable in LINKAGE section and COMMAREA option in the program. You can use any variable to hold the data that needs to be passed to the other program.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> CICS All times are GMT + 6 HoursGoto page Previous  1, 2
Page 2 of 2