Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

BATCH PROGRAM calls a sub-program repeatedly

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> COBOL Programming
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    Post subject: BATCH PROGRAM calls a sub-program repeatedly
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: 3158
Location: Tucson AZ

PostPosted: Wed May 19, 2010 3:13 pm    Post subject:
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: 2502
Location: Atlanta, Georgia, USA

PostPosted: Wed May 19, 2010 3:59 pm    Post subject: Reply to: BATCH PROGRAM calls a sub-program repeatedly
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    Post subject:
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    Post subject:
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    Post subject:
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: 2502
Location: Atlanta, Georgia, USA

PostPosted: Fri May 21, 2010 6:24 pm    Post subject: Reply to: BATCH PROGRAM calls a sub-program repeatedly
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    IBMMAINFRAMES.com Support Forums -> COBOL Programming All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts Executing OO COBOL program invoking J... Virendra Shambharkar COBOL Programming 2 Tue Jan 10, 2017 6:37 pm
No new posts Need Suggestion on COBOL program vickey_dw COBOL Programming 5 Thu Jan 05, 2017 10:55 pm
No new posts I can not compile my program PL1 V3.R... Miguel Fernandez PL/I & Assembler 13 Tue Dec 06, 2016 8:30 pm
No new posts How does a called pgm know if its cal... Graeme Westerman COBOL Programming 4 Tue Nov 29, 2016 9:25 pm
No new posts IMS BMP program causes 878 system abend Artemk IMS DB/DC 7 Tue Nov 22, 2016 8:26 pm


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us