有关QRPLOBJ

在AS400上,一个正在运行的程序也可以被更新,而且不影响正在运行这个程序的Job。这是怎么实现的呢?

当一个程序被更新时,如果REPLACE参数设置为*YES, 那么如果更新成功,这个程序就会被替换为新的程序,而老的程序被放到了QRPLOBJ这个系统库里。如果这个程序正在被使用,那么使用的是QRPLOBJ里的程序。举例:

CRTCLPGM PGM(MYLIB/MYCLPGM) REPLACE(*YES)

如果程序创建成功,那么老的MYCLPGM就放到了QRPLOBJ,这样正在运行的Job就可以使用QRPLOBJ中的MYCLPGM。 这个程序会被改名。新的名字以Q打头,后面跟着一个时间戳。

那么什么时候新的程序被使用呢,当用户重新登录后,在调用程序时才会使用新的版本。

如果所有的Job都在使用程序的新版本了,那么老的程序什么时候被删除呢?

有两种办法。 一种就是等下次IPL时可以被删除。但是AS400是被设计成长时间运行的(不像Windows哈), 如果QRPLOBJ中的Object越来越多占用大量存储空间怎么办?那就采用第二种方法,手动清除。

手动清除时需要注意是否有Job在使用QRPLOBJ中的Object(除了程序PGM/SRVPGM外,还会有USRSPC, USRQ等)。 贸然清除整个库(CLRLIB)是不可取的。一般情况下我们要看一下时间,然后根据情况判断哪些可以删除。同时也要看一下Object大小,删除大的最有效。

如何查看QRPLOBJ中的Object? 有很多方法:

1. DSPLIB QRPLOBJ

2. WRKOBJPDM LIB(QRPLOBJ) OBJ(*ALL)

3. DSPOBJD OBJ(QRPLOBJ/*ALL) OBJTYPE(*ALL) OUTPUT(*OUTFILE) OUTFILE(QGPL/QRPLOBJOBJ)                        
    WRKMBRPDM FILE(QGPL/QRPLOBJOBJ)

 

在Independent ASP上,QRPLOBJ的名字变成了QRPLxxxx。 其中xxxx是IASP的号码。 QRPLxxxx中的Object在IASP被Vary on时被清除, 而不是等到系统IPL。

你可能感兴趣的:(职场,休闲,QRPLOBJ)