状态组件面板定义
接下来,将定义状态组件 SY1 和 SY2的面板。 在将光标置于期望的系统名称下之后,可通过在根组件面板上按 DOWN PF 键 (PF8) 来访问这些面板。
也可通过 NetView NCCF 命令行输入 SDF SY1 或 SDF SY2 ,或在 SDF 中输入 SCREEN SY1 直接访问它们。
因为这些面板包含动态状态元素,所以必须使它们成为居民。 这是通过在主 SDF 面板定义成员中的 %INCLUDE 语句中引用它们来完成的。
图 1 显示了面板 SY1 和 SY2的样本面板定义。
/* Panel definition statements for SY1/SY2 panel
P(&SDFROOT.,24,80,SYSTEM,SYSTEM)
TF(01,02,10,WHITE,NORMAL)
TT(&SDFROOT.)
TF(01,27,47,WHITE,NORMAL)
TT(&SDFROOT. SYSTEM STATUS)
SF(&SDFROOT..JES,04,16,24,N)
ST(JES)
SF(&SDFROOT..RMF,06,16,24,N)
ST(RMF)
SF(&SDFROOT..VTAM,08,16,24,N)
ST(VTAM)
SF(&SDFROOT..TSO,10,16,24,N)
ST(TSO)
SF(&SDFROOT..AOFAPPL,12.16,24,N)
ST(NetView)
SF(&SDFROOT..AOFSSI,14,18,28,N)
ST(NetView SSI)
SF(&SDFROOT..WTOR,4,45,50,N)
ST(WTORs:)
SF(&SDFROOT..WTOR,4,53,56,N,,,c1)
SF(&SDFROOT..WTOR,4,59,67,N,,,1)
SF(&SDFROOT..WTOR,5,53,56,N,,,c2)
SF(&SDFROOT..WTOR,5,59,67,N,,,2)
SF(&SDFROOT..WTOR,6,53,56,N,,,c3)
SF(&SDFROOT..WTOR,6,59,67,N,,,3)
SF(&SDFROOT..WTOR,7,53,56,N,,,c4)
SF(&SDFROOT..WTOR,7,59,67,N,,,4)
SF(&SDFROOT..APPLIC,9,45,57,N)
ST(Applications:)
SF(&SDFROOT..APPLIC,9,59,67,N,,,1)
SF(&SDFROOT..APPLIC,10,59,67,N,,,2)
SF(&SDFROOT..APPLIC,11,59,67,N,,,3)
SF(&SDFROOT..APPLIC,12,59,67,N,,,4)
SF(&SDFROOT..APPLIC,13,59,67,N,,,5)
SF(&SDFROOT..APPLIC,14,59,67,N,,,6)
PFK4('SDFCONF #ROOT,#COMPAPPL,#RV,#SID,#SNODE,#DATE,#TIME,#DA')
TF(24,01,79,T,NORMAL)
TT('1=HELP 2=DETAIL 3=RET 4=DELETE 6=ROLL 7=UP'
' 10=LF 11=RT 12=TOP')
EPSDF 初始化使用公共全局 AOF_AAO_SDFROOT.n 为指定 P(&SDFROOT.,...)的每个面板生成与在全局中找到的系统名称一样多的面板。
如果未定义公共 globals AOF_AAO_SDFROOT.n 或 ".0" 变量包含值 0 ,那么缺省为本地系统名称和 SDF 初始化成员 AOFPNLS 和 AOFTREE。
SYS1 SYS2/MYPNLS SYS3//MYTREE SYS4/MYPNLS/MYTREE假定 AOFPNLS 和 MYPNLS 包含两个 INCLUDE 语句。
AOFPNLS MYPNLS
%INCLUDE(ABC) DYNAMIC &INCLUDE(ABC) DYNAMIC
%INCLUDE(CDE) DYNAMIC &INCLUDE(XYZ) DYNAMIC并且所有成员仅定义一个类似 "P(&SDFROOT.member_name,...)" 的面板,当 SDF 初始化该面板时,将生成以下面板:
SYS1ABC, SYS2ABC, SYS3ABC, SYSABC4 对于成员 CDESYS1CDE, , SYS3CDE对于成员 XYZ SYS2XYZ, SYS4XYZSY1 SY1 SYSTEM STATUS
JES WTORs: 14 MSGPROC
18 NETVIEW
RMF 22 MYJOB
VTAM
Applications: MSGPROC
TSO WTR00E
IMS
NetView CICS
ETC1
NetView SSI ETC2
===>
1=HELP 2=DETAIL 3=RET 4=DELETE 6=ROLL 7=UP 10=LF 11=RT 12=TOP
为应用程序名称 JES , RMF , VTAM , TSO , NetView 和 NetView SSI 定义的字段是静态的,仅当排队等待底层状态组件的最高优先级状态描述符更改时,预定义状态文本的颜色才会更改。 定义 WTORs: 和 Applications: 的字段也是静态的,但不引用特定子系统。 这些字段还将采用排队的最高优先级状态描述符的颜色。 如果由于底层状态组件 SY1.WTOR的 SDF 树定义而没有未完成的应答,那么 WTORs: 字段为绿色。 其余静态字段将显示为绿色化或 NetView DSIPARM 成员 AOFINIT 中定义的 EMPTYCOLOR。
WTORs: 和 Applications: 之后的状态字段是动态的,因为它们的内容和颜色都取决于它们所表示的状态描述符。 选择数据类型和从中获取数据的状态描述符编号的能力允许定义通用状态字段 (请参阅 STATUSFIELD)。 这将利用 SDF 功能部件,该功能部件允许当主状态组件未在 SDF 树结构中定义时,状态描述符在备用组件下排队。 对于子系统,状态组件名称是子系统名称,备用组件是 SUBSYS。 WTORs 使用应答标识作为状态组件名称并使用 WTOR 作为备用组件名称进行排队。
使用通用字段定义有几个优点,可能大大减少所需的维护量,特别是在大型多系统环境中。 使用此方法,将按优先级顺序显示状态组件,因此首先显示最关键的状态子系统。 此外,如果向 SA z/OS 定义的子系统数超过面板上定义的子系统数,那么将仅通知您最严重的情况。 如果需要,还可以继续其他面板上显示的状态列表。
您应该注意,使用此方法,子系统并不总是出现在面板上的相同位置,这可能使找到特定子系统变得困难。 另外,某些瞬态条件会导致子系统在屏幕上出现两次。 可以通过将瞬态状态定义的 "SDF 状态详细信息" 定义更改为 CLEAR=Y 来消除此问题。