Portal | Manuals | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Profile Log in to check your private messages Log in
 
Dynamic Allocation of PDS members

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> JCL & VSAM
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    Post subject: Dynamic Allocation of PDS members
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: 6968
Location: porcelain throne

PostPosted: Wed May 19, 2010 1:19 am    Post subject:
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    Post subject:
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: 683
Location: Pennsylvania

PostPosted: Wed May 19, 2010 7:03 pm    Post subject:
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    Post subject:
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: 683
Location: Pennsylvania

PostPosted: Thu May 20, 2010 12:45 am    Post subject:
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    IBMMAINFRAMES.com Support Forums -> JCL & VSAM All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts Historical/statistical details for me... elixir1986 TSO/ISPF 13 Wed Aug 30, 2017 9:02 pm
No new posts REXX - Dynamic file Creation d_sarlie CLIST & REXX 7 Tue Jun 27, 2017 7:30 pm
No new posts Dynamic output file creation in cobol... smileheal COBOL Programming 7 Thu Jun 15, 2017 10:53 pm
No new posts VSAM Space Allocation mrgnndhmk JCL & VSAM 7 Sat Apr 22, 2017 12:42 am
No new posts Dynamic split of files under groups sril.krishy DFSORT/ICETOOL 4 Mon Apr 17, 2017 1:09 pm

Facebook
Back to Top
 
Job Vacancies | Forum Rules | Bookmarks | Subscriptions | FAQ | Polls | Contact Us