NSK里的DEFINE
Nsk里的Define跟c语言里的define类似,不过不是语言级别的,是执行环境级别的,或者说是session级别的。Logon之后定义的define,logoff之后就没了,下次logon还要在执行(手工或者放到logon之后自动执行的脚本里)
Define的好处就是方便,简单。比如程序读写文件,实际的文件名随时会变,大多数情况下都会把要读写的文件放到一个固定的config文件里,然后从config里来得到文件的路径。Nsk的话,在程序里只需要使用理论名(即define值)。
Define是一个key value类型的,程序使用key,至于value是什么,执行之前指定就行了。
先说define名,就是上面的那个key了,必须是=开头,长度(包括=)2-24,第二个字符必须是英字母。
Define属性。最主要的是class属性,指定define的类型,包括sql的catalog,defaults,map(key-实际文件名),spool,tape等。经常用的就是catalog和map了。
这是一个简单的map的例子
$DISK SUBVOL 4> ADD DEFINE =MYDEF , CLASS MAP , FILE $DISK.SUBVOL.FILE1
$DISK SUBVOL 5> info define =MYDEF
Define Name =MYDEF
CLASS MAP
FILE \NODE1.$DISK.SUBVOL.FILE1
$DISK SUBVOL 7> fup info =MYDEF,detail
comment 相当于fup info \NODE1.$DISK.SUBVOL.FILE1,detail
$DISK.SUBVOL.FILE1 24 Aug 2007, 13:39
ENSCRIBE
TYPE U
FORMAT 1
CODE 101
EXT ( 4 PAGES, 12 PAGES )
MAXEXTENTS 978
BUFFERSIZE 4096
OWNER 96,5
SECURITY (RWEP): NNNU
DATA MODIF: 1 Aug 2007, 10:46
CREATION DATE: 1 Aug 2007, 10:46
LAST OPEN: 14 Aug 2007, 14:57
FILE LABEL: 154 (3.7% USED)
EOF: 788 (0.0% USED)
EXTENTS ALLOCATED: 1
$DISK SUBVOL 8> delete define =MYDEF
$DISK SUBVOL 9> fc fup
$DISK SUBVOL 9> fup info =MYDEF,detail
$DISK SUBVOL 9..
INFO =MYDEF,detail
— ^ –
ERROR - COULD NOT FIND DEFINE.
*ABEND*
ABENDED: 3,216
$DISK SUBVOL 10>