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

Dynamic Allocation of PDS members


IBM Mainframe Forums -> JCL & VSAM
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
mvenkatesha

New User


Joined: 18 Oct 2006
Posts: 23
Location: bangalore

PostPosted: Wed May 19, 2010 12:47 am
Reply with quote

Currently We are getting a PDS with one member name called “BINDS”. This will list many names starting from the position 1 and can be up to 8 characters.

PDS NAME -> XXXX.XXXX.XXXX
Member name -> BINDS

XXXX.XXXX.XXXX(BINDS)
ABCDEHG1 -- Record 1
ABCDEHG2 -- Record 2
ABCDEHG3 -- Record 3
ABCDEHG4 -- Record 4
ABCDEHG5 -- Record 5
ABCDEHG6 -- Record 6
ABCDEHG7 -- Record 7

We are making use of One COBOL program which will read above PDS member (BINDS) as INPUT and create the below JCL cards and write into a sequential file.
The Output sequential file then put into “INTRDR “ so that it submits all the jobs created by the Cobol programs in sequence.

SAMPLE file created by COBOL program is as below.

Code:
//XXXXXXX JOB (XXXX,YYY),       
//             'BUILD BINDS',
//             NOTIFY=&SYSUID,     
//             CLASS=B,             
//             MSGCLASS=A         
//*                                 
//MAKPKBND EXEC PGM=IEBGENER
//*                                     
//SYSUT1    DD *                       
  DSN SYSTEM(PARM1)                   
   BIND PACKAGE(PARM2) +             
        MEMBER(ABCDEHG1) +           
        ACTION(PARM3) +             
        ISOLATION(PARM4) +           
        VALIDATE(PARM5) +           
        EXPLAIN(PARM6) +             
        DEGREE(PARM7) +             
        DYNAMICRULES(PARM8) +       
        CURRENTDATA(PARM9)+         
        QUALIFIER(PARM10) +           
        OWNER(PARM11) +               
        LIBRARY(' PARM12')           
  END                                   
//*                                     
//SYSUT2    DD DSN=YYYYYY.YYYYYYY.YYYYY(ABCDEHG1),
//            DISP=(SHR,KEEP,KEEP)     
//SYSPRINT  DD SYSOUT=*
//SYSIN     DD DUMMY                   
//*                                     
//XXXXXXX JOB (XXXX,YYY),       
//             'BUILD BINDS',
//             NOTIFY=&SYSUID,     
//             CLASS=B,             
//             MSGCLASS=A         
//*                                 
//MAKPKBND EXEC PGM=IEBGENER
//*                                     
//SYSUT1    DD *                       
  DSN SYSTEM(&DB2SYS)                   
   BIND PACKAGE(&DB2OPKG) +             
        MEMBER(ABCDEHG2) +           
        ACTION(&DB2OACT) +             
        ISOLATION(&DB2OISO) +           
        VALIDATE(&DB2OVAL) +           
        EXPLAIN(&DB2OEXP) +             
        DEGREE(&DB2ODEG) +             
        DYNAMICRULES(&DB2ODRL) +       
        CURRENTDATA(&DB2OCDT)+         
        QUALIFIER(&DB2OQLF) +           
        OWNER(&DB2OWNR) +               
        LIBRARY('&DBRMBIND')           
  END                                   
//*                                     
//SYSUT2    DD DSN=YYYYYY.YYYYYYY.YYYYY(ABCDEHG2),
//            DISP=(SHR,KEEP,KEEP)     
//SYSPRINT  DD SYSOUT=*
//SYSIN     DD DUMMY                   
//*   

YYYYYY.YYYYYYY.YYYYY is PDS and after all jobs have completed we get the BINDS cards for all the elements which will be stored as members.

YYYYYY.YYYYYYY.YYYYY PDS
ABCDEHG1 -- Member 1
ABCDEHG2 -- Member 2
ABCDEHG3 -- Member 3
ABCDEHG4 -- Member 4
ABCDEHG5 -- Member 5
ABCDEHG6 -- Member 6
ABCDEHG7 -- Member 7

All the members will have the cards as shown in the above JCL.

Now the problem is we are getting nearly 50000 members many times and we end up in submitting 50000 jobs. We also tried to update nearly 200 Steps for single JCL and then submit for INTRDR but still not able to reduce the number of jobs we are submitting.

To handle this scenario we really could not think of any other alternative with our limited knowledge.

Wanted to know from experts if there is a way to handle this scenario using one single job.
Please let me know if you want any additional information. Any help would be greatly appreciated.

I also searched the forum but not found anything similar.

Thank you
Venkat.
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 1:19 am
Reply with quote

In one TMP (ikjeft..) step you only need one DSN and you can umteen number of BINDS. but that would require changing your whole process - which you should. Most places do this dynamically, based on the db2 catelogue and not some file (pds member with bind names).
others are better skilled at suggesting methods that you can employ, so I will sign off with this warning:

Watch out that you don't blow your db2 catelogue during the process of 'binding/rebinding' everything.
Back to top
View user's profile Send private message
mvenkatesha

New User


Joined: 18 Oct 2006
Posts: 23
Location: bangalore

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

Hello Dick

Thank you for the suggestion. Our process we create Binds cards in one dataset and copy them to many regions after making modifications in the BIND parameters as region specific. Finally perform Binds.

I agree that implementing your suggestion requires many process changes.

I have also gone through forum and seen some of the posts. Looks like REX can be used to build a logic for my need (I may be wrong since I am new to REX). Never used to REX so doing some trial and error method and reading manuals if this can be achievable. Sorry but still clueless how this can be handled.

Thank you
Venkat
Back to top
View user's profile Send private message
daveporcelan

Active Member


Joined: 01 Dec 2006
Posts: 792
Location: Pennsylvania

PostPosted: Wed May 19, 2010 7:03 pm
Reply with quote

Venat,

I appears to me that you are making this much more complicated than it needs to be.

As Dick mentioned, you can perform many Binds using a single file in a single job step.

I have done 5000 or more without any catalog issues. Check with your DBA staff regarding that.

Given the fact that you have to make some sort of changes, it would probably easiest to change your Cobol program:

Create One sequential file (not PDS) for each DB2 Subsystem.
Each of these files can have ALL the Binds for all the regions with the specific parameters for each. Your program is already doing this.
You only need a single DSN SYSTEM(DB2SYS) at the top of each.
DSN=BIND.CARDS.FOR.DB2SYS.A
DSN=BIND.CARDS.FOR.DB2SYS.B etc...


You can then run one Bind job with seperate steps for each subsystem.

Or one Job per subsystem, even creating JCL and using the internal reader if you like.

Creating a dynamic REXX (two xx's), can certainly be done. I have created a process to do just that. It would be very involved, not for the Rexx novice, and certainly could not be explained through a forum such as this.

I would go with modifying the Cobol approach you currently have in place.
Back to top
View user's profile Send private message
mvenkatesha

New User


Joined: 18 Oct 2006
Posts: 23
Location: bangalore

PostPosted: Thu May 20, 2010 12:32 am
Reply with quote

Hello daveporcelan,

Thank you for your Valuable inputs. After speaking with the DBA's they disagreed the suggestion to do all Binds in One step and want us to stick to 1 BIND at a time. By having all binds at one step they say we may cause problems with catalog and result in utilizing DB2 resources heavily resulting in contentions.

So trying to come up some thing in REXX since you all said it is possible in REXX.

Thank you
Venkat
Back to top
View user's profile Send private message
daveporcelan

Active Member


Joined: 01 Dec 2006
Posts: 792
Location: Pennsylvania

PostPosted: Thu May 20, 2010 12:45 am
Reply with quote

I am not sure how Rexx is going to help your situation.

Are you going to perform 1 bind per Job still?

What difference does it make if you use Ikjeft... to submit bind cards, or use Rexx to call DSN to do same?

The 1 bind per Job causes extra overhead with JES, plus makes it more difficult to review results.

If you are lucky, this overhead won't be bad, and the Jobs will run quickly and you are back to possible DB2 catalogue issues?

Good luck with whatever approach you use.
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 -> JCL & VSAM

 


Similar Topics
Topic Forum Replies
No new posts CLIST - Virtual storage allocation error CLIST & REXX 5
No new posts Using Dynamic file handler in the Fil... COBOL Programming 2
No new posts Duplicate several members of/in one l... JCL & VSAM 7
No new posts JCL Dynamic System Symbols JCL & VSAM 3
No new posts Synctool-dynamic split job for varyin... JCL & VSAM 7
Search our Forums:

Back to Top