View previous topic :: View next topic
|
Author |
Message |
haohao
New User
Joined: 23 May 2008 Posts: 35 Location: beijing China
|
|
|
|
I have a BATCH PROGRAM issues a dynamic call on a sub-program repeatedly.
IBM APA Performance Analysis Reports shows that about 70% of time is waiting for load program's loadmodule:
(SVC008--IGZ001),SHOWED in attachment.
why the sub-program's loadmodule can't be kept in memory?
Does it possible to avoid to do the load by amend any z/os system configration?
it is very strange ,I try to rename the sub-program's loadmodule to another one when the
batch is running,the job is running well without any exception. IS it really do the load
when the sub-program be dynamic called from main program?
could anybody give some suggestion? thanks in advance!! |
|
Back to top |
|
|
William Thompson
Global Moderator
Joined: 18 Nov 2006 Posts: 3156 Location: Tucson AZ
|
|
|
|
A simple cut&paste would work just as well....
Quote: |
why the sub-program's loadmodule can't be kept in memory? |
What does the code that calls the module look like? |
|
Back to top |
|
|
Bill O'Boyle
CICS Moderator
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
|
|
|
|
In program housekeeping, try loading the sub-program into memory using a PROCEDURE-POINTER (like an MVS Load Macro under the covers). Then, use the value in the PROCEDURE-POINTER-X in your CALL STATEMENT and see if this helps.
Code: |
03 WS-PROCEDURE-POINTER PROCEDURE-POINTER.
03 WS-PROCEDURE-POINTER-X REDEFINES WS-PROCEDURE-POINTER PIC X(08).
03 WS-SUB-PROG PIC X(08) VALUE 'SUBPROG'.
*
SET WS-PROCEDURE-POINTER TO ENTRY WS-SUB-PROG.
*
CALL WS-PROCEDURE-POINTER-X USING....
|
Never use PROCEDURE-POINTER in CICS.
Bill |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
are you CANCELing the submodule in the CALLing pgm?
does the submodule have the INITIAL clause in the PROGRAM-ID paragraph? |
|
Back to top |
|
|
haohao
New User
Joined: 23 May 2008 Posts: 35 Location: beijing China
|
|
|
|
thanks a lot for those reply!
I never use cancel statement in the calling program, and the sub-program without INITIAL clause.
BILL,I will follow your suggestion!, hope it works! thanks again! |
|
Back to top |
|
|
haohao
New User
Joined: 23 May 2008 Posts: 35 Location: beijing China
|
|
|
|
hi,BILL,
the program was abend after I modifed it in your way:
prog :
Code: |
01 WS-POINTER.
03 WS-PROCEDURE-POINTER PROCEDURE-POINTER.
03 WS-PROCEDURE-POINTER-X REDEFINES WS-PROCEDURE-POINTER PIC X(08).
03 WS-JR02-PROG PIC X(08) VALUE "DBIOJR02".
03 WS-GL02-PROG PIC X(08) VALUE "DBIOGL02".
...........
SET WS-PROCEDURE-POINTER TO ENTRY WS-JR02-PROG.
CALL WS-PROCEDURE-POINTER-X USING DBIOMOD-FILE . |
the abend info is:
CEE3501S The module 2} & was not found.
how can i resolve this abend? thanks a lot for your help!! |
|
Back to top |
|
|
Bill O'Boyle
CICS Moderator
Joined: 14 Jan 2008 Posts: 2501 Location: Atlanta, Georgia, USA
|
|
|
|
Continue with the PROCEDURE-POINTER SET, which loads the given sub-program into memory. But, instead of calling the sub-program with "WS-PROCEDURE-POINTER-X", call the sub-program, using "WS-JR02-PROG" or "WS-GL02-PROG".
Bill |
|
Back to top |
|
|
|