View previous topic :: View next topic
|
Author |
Message |
mvenkatesha
New User
Joined: 18 Oct 2006 Posts: 23 Location: bangalore
|
|
|
|
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 |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
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 |
|
|
mvenkatesha
New User
Joined: 18 Oct 2006 Posts: 23 Location: bangalore
|
|
|
|
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 |
|
|
daveporcelan
Active Member
Joined: 01 Dec 2006 Posts: 792 Location: Pennsylvania
|
|
|
|
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 |
|
|
mvenkatesha
New User
Joined: 18 Oct 2006 Posts: 23 Location: bangalore
|
|
|
|
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 |
|
|
daveporcelan
Active Member
Joined: 01 Dec 2006 Posts: 792 Location: Pennsylvania
|
|
|
|
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 |
|
|
|