分类: 系统运维
2011-08-31 15:21:27
创建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'"此例子就是创建一个名C210408.GDG.BASE,有三代的GDG。并且此GDG存在的情况下会报错。
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
创建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.