【z/OS】REXX创建GDG

2059阅读 0评论2011-08-31 pantierui
分类:系统运维

创建GDG base的命令DEFINE GDG的格式如下:

DEFINE GENERATIONDATAGROUP
(NAME(entryname)
LIMIT(limit)
[EMPTY|NOEMPTY]
[OWNER(ownerid)]
[SCRATCH|NOSCRATCH]
[CATALOG(catname)]

具体的解释请参照IBM RedBook《DFSMS Access Method Services for Catalogs》,书号:SC26-7394-11

其中主要的参数为NAME和LIMIT。NAME就不必多讲。LIMIT就是你的这个GDG能产生几代。

下面就是具体的例子:

DDNAME = "'C210408.GDG.BASE'"                    
x = Outtrap(n.)                                  
"def gdg(name("ddname") LIM(3) SCR)"             
x = Outtrap(Off)                                 
Do i = 1 To n.0                                  
  err = Pos("DUPLICATE DATA SET NAME",n.i)       
  If err <> 0 Then Say "This GDG is existence"   
End                                              
Exit 0                                           
此例子就是创建一个名C210408.GDG.BASE,有三代的GDG。并且此GDG存在的情况下会报错。

创建GDG Genaration和创建一般的dataset没有什么差别(至少我是这样认为的)。都是用ALLOC命令。不过不同的是Generation是有代的。一般的格式是GDG.BASE.GxxxxVyy,这里的xxxx是Generation number,yy是version number。

下面是具体的例子:

GDG = "c210408.gdg.Base"                                               
DSN = STRIP(GDG||".G0000V00")                                          
X=OUTTRAP(LST.)                                                        
"LISTC ENT('"GDG"')"                                                   
X=OUTTRAP(OFF)                                                         
DO A = LST.0 TO 1 BY -1                                                
  IF POS('NONVSAM',LST.A) > 0 THEN DO                                  
    DSN = SUBSTR(LST.A,POS('NONVSAM',LST.A)+13,44)                     
    A = 0                                                              
  END                                                                  
END                                                                    
VX = LENGTH(STRIP(DSN)) - 6                                            
NG = STRIP(OVERLAY(RIGHT(1+SUBSTR(DSN,VX,4),4,'0'),DSN,VX,4))          
"ALLOC FI(MST) NEW TRACKS SPACE(5 3) RECFM(F B) LRECL(8) DA('"NG"')"   
"FREE FI(MST)"                                                         
DROP LST.                                                              
上一篇:如何利用客户端在CU发博客
下一篇:【AS/400】Qshell之01:介绍