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

BATCH PROGRAM calls a sub-program repeatedly


IBM Mainframe Forums -> COBOL Programming
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
haohao

New User


Joined: 23 May 2008
Posts: 35
Location: beijing China

PostPosted: Wed May 19, 2010 9:58 am
Reply with quote

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
View user's profile Send private message
William Thompson

Global Moderator


Joined: 18 Nov 2006
Posts: 3156
Location: Tucson AZ

PostPosted: Wed May 19, 2010 3:13 pm
Reply with quote

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
View user's profile Send private message
Bill O'Boyle

CICS Moderator


Joined: 14 Jan 2008
Posts: 2501
Location: Atlanta, Georgia, USA

PostPosted: Wed May 19, 2010 3:59 pm
Reply with quote

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
View user's profile Send private message
dbzTHEdinosauer

Global Moderator


Joined: 20 Oct 2006
Posts: 6966
Location: porcelain throne

PostPosted: Wed May 19, 2010 4:04 pm
Reply with quote

are you CANCELing the submodule in the CALLing pgm?

does the submodule have the INITIAL clause in the PROGRAM-ID paragraph?
Back to top
View user's profile Send private message
haohao

New User


Joined: 23 May 2008
Posts: 35
Location: beijing China

PostPosted: Wed May 19, 2010 8:04 pm
Reply with quote

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
View user's profile Send private message
haohao

New User


Joined: 23 May 2008
Posts: 35
Location: beijing China

PostPosted: Fri May 21, 2010 11:48 am
Reply with quote

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
View user's profile Send private message
Bill O'Boyle

CICS Moderator


Joined: 14 Jan 2008
Posts: 2501
Location: Atlanta, Georgia, USA

PostPosted: Fri May 21, 2010 6:24 pm
Reply with quote

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
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 -> COBOL Programming

 


Similar Topics
Topic Forum Replies
No new posts Using API Gateway from CICS program CICS 0
No new posts COBOL ZOS Web Enablement Toolkit HTTP... COBOL Programming 0
No new posts How to get a stack trace on a looping... ABENDS & Debugging 5
No new posts Calling Java method from batch COBOL ... COBOL Programming 5
No new posts Help in Automating Batch JCL jobs mon... JCL & VSAM 3
Search our Forums:

Back to Top