My current company is using bind package but does not use collection. So every time after bind package, programmers need to bind plan(two bind steps). Besides, there are different plans for different batch processes. So in each plan, the plan member has a long list of packages. Changed or add one program, programmer may have to change plan list and bind a few plans.
I believe DB2 collection can make things better. But my DB2 knowledge is not very strong, I believe I know half half. So I want to have more expert advice before I change something. Here are my questions.
1) I am thinking if I can replace current setup into one(or two) grant plan and add one collection for each batch process. So I only need to bind once (bind package and not plan) and do not have to maintain the list of package any more, am I correct?
2) Will I have any problem/disadvantage by going this way?
3) What are other advantage(s) by using collections in this case?
4) If some programs are using IMS, will this cause problem by using collection?
i think i can explain you with a explain you with a example.
Considering that you have named PLAN_A for a batch job which is using a list of programs like PROGRAM_1,PROGRAM_2,PROGRAM_3,PROGRAM_4,...etc
Instead of binding in two steps as explained by you,you can do one time bind of all the packages for the job with COLLECTION_A by including COLLECTION.* as shown below
Package binds will be done as following
BIND PACKAGE(COLLECTION_A) MEMBER(PROGRAM_1)
So there is no need of binding the plan again and again since COLLECTION_A.* will take of the packages under that collection id.
if this process is followed only one time package bind will be needed whenever new program or old program changes are done in the batch job,there is no need of plan bind again and again.
I believe my company is using this method. I made the correction on July 26th 2006. Please see that! I was confused at the beginning.
But the reason that confused me was DBA suggested to use PKLIST( collection_a, collection_b,....collection_n) instead of PKLIST(*), so whenever there is a new program add in, the new program needs to add into the PKLIST. And there are a lot of problems in different test enviornments because the bind plan member is not insync with the DB2 in test enviornment1, test envirnment2...so on.
So what is the advantage of not using pklist(*). If we use pklist(*), can we just bind package and do not need to bind plan anymore.
Any good suggestion for the bind not insync problem?