DB2 - Problem description
| Problem IC68645 | Status: Closed | 
REBIND_ROUTINE_PACKAGE MAY FAIL WITH ERROR -811  | |
| product: | |
DB2 FOR LUW / DB2FORLUW / 910 - DB2  | |
| Problem description: | |
REBIND_ROUTINE_PACKAGE may fail with error -811 in a case where the routine's package name is the same as another package belonging to another routine in a different schema. For Example : ------------- On calling the REBIND_ROUTINE_PACKAGE, it may return : SQL0443N Routine "SYSPROC.REBIND_ROUTINE_PACKAGE" (specific name "REBIND_ROUTINE") has returned an error SQLSTATE with diagnostic text "-811, 21000, ". SQLSTATE=38000 ie. a -811 token is received inside an SQL0443 message  | |
| Problem Summary: | |
**************************************************************** * USERS AFFECTED: * * All users on DB2 V 9.1 FixPack 9 and below * **************************************************************** * PROBLEM DESCRIPTION: * * REBIND_ROUTINE_PACKAGE may fail with error -811 in a case * * where * * the routine's package name is the same as another package * * * * belonging to another routine in a different schema. * * * * * * * * For Example : * * * * ------------- * * * * * * * * On calling the REBIND_ROUTINE_PACKAGE, it may return : * * * * * * * * SQL0443N Routine "SYSPROC.REBIND_ROUTINE_PACKAGE" (specific * * * * name "REBIND_ROUTINE") has returned an error SQLSTATE with * * * * diagnostic text "-811, 21000, ". SQLSTATE=38000 * * * * ie. a -811 token is received inside an SQL0443 message * **************************************************************** * RECOMMENDATION: * * Upgrade to DB2 V9.1 FixPack 10. * ****************************************************************  | |
| Local Fix: | |
The customer can use the workaround of dropping and recompiling 
conflicting routines until they have unique package names.  To 
find routines in conflict, they can use the following stored 
procedure: 
 
create procedure same_package_name(in schema varchar(128), in 
name varchar(128)) 
dynamic result sets 1 
begin 
  declare stmt_text varchar(512); 
  declare S1 statement; 
  declare C1 cursor with return to caller for S1; 
 
  set stmt_text = 
    'select trim(r.routineschema) || ''.'' || 
trim(r.routinename) ' || 
    'from syscat.routines r, sysibm.sysdependencies d where 
d.bname = ' || 
    '(select d.bname from syscat.routines r, 
sysibm.sysdependencies d ' || 
    'where r.routinename = ? and r.routineschema = ? ' || 
    'and d.btype = ''K'' and d.dtype = ''F'' ' || 
    'and d.dname = r.specificname and d.dschema = 
r.routineschema) ' || 
    'and d.dname = r.specificname'; 
 
  prepare S1 from stmt_text; 
  open C1 using name, schema; 
end @ 
 
The procedure is called with the schema and name of the routine 
failing in REBIND_ROUTINE_PACKAGE; it returns a list of routines 
that share the same package name. 
 
Example : call same_package_name('MYSCHEMA', 'PROC1') | |
| available fix packs: | |
DB2 Version 9.1 Fix Pack 10 for Linux, UNIX and Windows  | |
| Solution | |
Problem first fixed in DB2 V9.1 FixPack 10  | |
| Workaround | |
not known / see Local fix  | |
| BUG-Tracking | |
forerunner : APAR is sysrouted TO one or more of the following: IC68930 IC69298 follow-up :  | |
| Timestamps | |
Date - problem reported : Date - problem closed : Date - last modified :  | 14.05.2010 17.06.2011 17.06.2011  | 
| Problem solved at the following versions (IBM BugInfos) | |
9.1.FP10  | |
| Problem solved according to the fixlist(s) of the following version(s) | |
| 9.1.0.10 | 
 |