View previous topic :: View next topic
|
Author |
Message |
sivatechdrive
Active User
Joined: 17 Oct 2004 Posts: 191 Location: hyderabad
|
|
|
|
Hi all
i have a doubt on call in cics
By using Call statement,
the called program will be a part of object module,so the size is huge and
so we go for link or XCTL,
Can't we use dynamic calls in cics,so that the program can we called at run time.
Thanks
Siva |
|
Back to top |
|
|
mcmillan
Site Admin
Joined: 18 May 2003 Posts: 1210 Location: India
|
|
|
|
Quote: |
Can't we use dynamic calls in cics |
Good Question!
Yes, we can use Dynamic Call instead of Link/XCTL.
But we have to face the following limitations:
1. You have to store your subprograms in CICS Link Pack Area instead of CICS loadLibrary.
2. If the dynamic COBOL CALL fails, CICS abend handling is not invoked, and you may get a COBOL abend code
3. The called Program must be in Local Region, while you can LINK/XCTL a remote program.
4. If the called subprogram uses 24-bit addressing and any parameter is above the 16MB line, COBOL issues a message and abends. |
|
Back to top |
|
|
sivatechdrive
Active User
Joined: 17 Oct 2004 Posts: 191 Location: hyderabad
|
|
|
|
hi mcmillan
Thanks for the wonderfull answer
Bye
siva |
|
Back to top |
|
|
kanak
Moderator
Joined: 12 Mar 2005 Posts: 252 Location: India
|
|
|
|
Mac,
I have some queries abt what u replied.
1.What is CICS link pack area?
2. what u said in point 2 is "If dynamic cobol call fails"..what if dynamic cics call fails..and even if then we don't handle the error condition then also it will cobol abend? |
|
Back to top |
|
|
sarma Kappagantu
New User
Joined: 17 Mar 2005 Posts: 22 Location: Bangalore
|
|
|
|
1. It is better to use Dynamic Call when compared to LINK for performance.
2. Dynamically called programs should have CSD entry. (i.e PPT entry)
3. In dynamically called programs, you should issue fresh HANDLE CONDITION and HANDLE ABEND commands. (I believe this is the best practice even otherwise.)
4. Working storage variables will have old values. So you have to ensure that the variables are refreshed programatically or use IS INITIAL clause in the program ID.
5. Should not use RETURN. Use GOBACK instead to transfer control to the calling program.
6. DFHEIBLK and DFHCOMMAREA are the first two variables passed to the called program.
7. Can not make a call to a program in another CICS region. (In such cases, you are limited to using LINK only.)
Just compile using your CICS - COBOL compiler CLIST and go ahead and enjoy better performance. |
|
Back to top |
|
|
|