Table Pending的解决方法

2009年04月9日  |  4:57 下午分类:大型机|Mainframe  |  标签:  |  32 views

当load或使用一些utility以及一些SQL语句的时候,工作表正处于pending,会出现如下类似错误信息,某种资源不可用等等。

Unsuccessful execution caused by an unavailable resource.  Reason code

00C900A0, type of resource 00000200, and resource name…

如出现上述情况,我们可以对这整个database下面的所有index,tablespace进行display,display信息如下所述,当出现pengding code为RBDP的时候。对这个index进行rebuild就可以,如果出现不是这个pengding code而为其他code的时候,比如RBDP*等等都可以采用相应的语句就可以恢复,只要把下面的rebuild代码替换成相应的解决方案即可。


Indexname1 IX RW,RBDP

indexname2 IX         RW

切记如果是本番的情况下,要慎重考虑rebuild,因为有可能是本番job在锁定某张表。如果强行rebuild的话。可能带来一些灾难性的后果。

详细代码可以参考下面的实例。

Display出database中所有的index以及tablespace的名字,以及是否处于某种pending的状态.

//SYSDISP  PROC

//RESET    EXEC PGM=IKJEFT01,DYNAMNBR=20

//STEPLIB  DD  DSN=SUN.SDSNLOAD,DISP=SHR

//SYSTSPRT DD  SYSOUT=*

//SYSPRINT DD  SYSOUT=*

//SYSUDUMP DD  SYSOUT=*

//OUTPUT DD  SYSOUT=*,DCB=(RECFM=FBA,LRECL=133,BLKSIZE=27930)

//SYSTSIN  DD  DUMMY

//      PEND

//DISP01   EXEC SYSDISP

//SYSTSIN  DD  *

DSN SYSTEM(SUN)

-DIS DATABASE(DATABASE1) LIMIT(999)

END

/*

对处于pending状态的index进行REBUILD操作。

//REPAIR1 EXEC PGM=DSNUTILB,PARM=’SUN’,COND=EVEN

//STEPLIB  DD  DSN=SUN.SDSNLOAD,DISP=SHR

//SYSPRINT DD  SYSOUT=*

//UTPRINT  DD  SYSOUT=*

//SYSUDUMP DD  SYSOUT=*

//SYSUT1   DD  UNIT=SYSDA,SPACE=(CYL,(10,10))

//SYSIN    DD  *

REBUILD INDEX(schema.index)

/*

Rebuild 后table恢复正常





喜欢本文,那就收藏到: Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网

发表您的评论