jueves, 24 de febrero de 2011

Error de DB2 code -572 SQL state 51028

Cuando andaba realizando  pruebas en una base de datos recien restaurada en DB2 uno de mis procesos empezo a entrar en exception.
mensaje respuesta: CallableStatementCallback; uncategorized SQLException for SQL [{call PRG_REC.USP_PAR_GENERAR_VARIABLES_GP(?, ?, ?, ?, ?, ?, ?)}]; SQL state [51028]; error code [-572]; Package "PRG_REC.P0233896" is inoperative.; nested exception is com.ibm.db2.jcc.b.SqlException: Package "PRG_REC.P0233896" is inoperative.
Googleando encontre que el  error se solucionaba haciendo  un REBIND al package. y  heche a andar la respuesta del amigo  Google.
$ db2 rebind PRG_REC.P0233896
DB20000I  The REBIND PACKAGE command completed successfully.
Nota: como  obtener todo los packages de un SCHEMA: ejecuta el  siguiente Query y  crea  un :  #vi rebindMySHEMA.sh, y dentro  de esto  copia el resultado del Query acontinuacion:

SELECT 'db2 rebind '|| TRIM(PKGSCHEMA) ||'.'|| TRIM(PKGNAME) ||';' FROM SYSCAT.PACKAGESWHERE PKGSCHEMA like '%MySchema%'
Resultado:
 db2 rebind PRG_REC.P0005869;
 db2 rebind PRG_REC.P0184908;
 db2 rebind PRG_REC.P0200552;
 db2 rebind PRG_REC.P0233896;
 db2 rebind PRG_REC.P0511077;
 db2 rebind PRG_REC.P0511461;
 db2 rebind PRG_REC.P0511461; 
Copiarlo hacia   el script rebindMySHEMA.sh

Luego hacer un #db2 connect to MyDB

Finalmente ejecutar el script:  #sh rebindMySHEMA.sh