Page 1 of 1

Need explanation on this senario.

PostPosted: Wed Aug 22, 2012 7:57 pm
by gokulNmf
Hi All,
Sorry if the subject was not meaningful, i dont want to dump the whole thing in the subject.
we are using Changeman @ out site.

In the cobol program i have a query like:
select col1,col2
from vnd.vnd001
where conds..

i compiled the program and it got compiled fine.
Now while promoting, i got bind error. -911(timeout or deadlock) i was stuck for from time and i removed the schema name before the table from the query so the query became
select col1,col2
from vnd001
where conds.. in the cbl program

and now i compiled the program and promoted it.. it got promoted fine.
I dont know why this is happening.

Can anyone please enlighten me on this scenario?

TIA

Re: Need explanation on this senario.

PostPosted: Wed Aug 22, 2012 8:54 pm
by dick scherrer
Hello,

A resource needed for the failed bind was in use and your process timed out.

Re: Need explanation on this senario.

PostPosted: Wed Aug 22, 2012 9:08 pm
by Anuj Dhawan
  1. I doubt if Change-Man has got anything to do with this.
  2. Second, in an Application Program, one usually codes just the table name not like you did it: "vnd.vnd001"
  3. And is it really called "schema"?
  4. Have you looked at other similar program, how are they coded?

Re: Need explanation on this senario.

PostPosted: Sat Aug 25, 2012 2:46 pm
by Quasar
Hi Gokul -

Unless you query a catalog table in your program, you'd most like not write the Fully-Qualified name of the table. Here's a little insight into why -

When you write a Query in SPUFI or QMF, you'd write :
SELECT SEQ_NUM,ANNTY_AMT FROM CSSP.TCTEMPE_PLN;


The Creator-name CSSP is specified, because SPUFI or QMF execute them dynamically. There are no plans.

When you write Embedded SQL Queries in a COBOL Program/any other compiled language, you'd write :
SELECT SEQ_NUM,ANNTY_AMT FROM TCTEMPE_PLN


Several Mainframe Shops have region-wise different DB2 PLANs. For example, a DB2 PLAN for Production, another PLAN for QA Testing region, another PLAN for Development Region, and yet one more for UAT Region. During BIND PLAN, you'd specify the QUALIFIER() option, so as to add your SQL Executable instructions to the correct plan.

BIND MEMBER(F0828P43)
PLAN(F0828PLN)
QUALIFIER(CSSP)


Thanks,
Quasar

Re: Need explanation on this senario.

PostPosted: Sun Aug 26, 2012 8:49 am
by dick scherrer
Hello,

Your first (main) problem is the time-out. This is because a resource needed was unavailable. If you change the xxx.yyyyy leaving out the xxx. the bind may run, but you still have the issue that caused the time out.

One of the places i visit did the most terrible of having only one(1) plan/package for "everything". What they didn't know is that when a job is running using this, nothing can "bind". I suspect you may have run into a long-running process that caused your bind to time out.

They struggled with this in db2 v8 and i don't know if this has been corrected in v9 and v10.

Re: Need explanation on this senario.

PostPosted: Sun Aug 26, 2012 12:44 pm
by gokulNmf
Hi Quasar and d.sch,

As the issue got resolved that time, i continued with it and thought i ll get back to the forum on the weekend. Now after reading both the post i got some insight on this. I will verify the plan once again and get it clarify what happened that day.
Thank you for the Help.