Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1064922
  • 博文数量: 106
  • 博客积分: 9093
  • 博客等级: 中将
  • 技术积分: 2770
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-01 17:22
文章分类

全部博文(106)

文章存档

2014年(1)

2012年(29)

2011年(32)

2010年(20)

2008年(24)

分类: 系统运维

2011-08-31 15:21:27

  • 创建GDG base

创建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 Generation

创建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.                                                              
阅读(1905) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~