状态组件面板定义

接下来,将定义状态组件 SY1 和 SY2的面板。 在将光标置于期望的系统名称下之后,可通过在根组件面板上按 DOWN PF 键 (PF8) 来访问这些面板。

也可通过 NetView NCCF 命令行输入 SDF SY1 或 SDF SY2 ,或在 SDF 中输入 SCREEN SY1 直接访问它们。

因为这些面板包含动态状态元素,所以必须使它们成为居民。 这是通过在主 SDF 面板定义成员中的 %INCLUDE 语句中引用它们来完成的。

图 1 显示了面板 SY1 和 SY2的样本面板定义。

图 1。 SDF 示例: 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')
EP

SDF 初始化使用公共全局 AOF_AAO_SDFROOT.n 为指定 P(&SDFROOT.,...)的每个面板生成与在全局中找到的系统名称一样多的面板。

图 2 显示了 图 1 中的语句为系统 SY1定义的布局。
注: 四个可用的 WTOR 动态字段中的三个字段已填充 WTOR 编号以及发出这些字段的作业的名称。 无论其源是否定义到 SA z/OS,都将显示 WTORs。

如果未定义公共 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 初始化该面板时,将生成以下面板:

对于成员 ABC
SYS1ABC, SYS2ABC, SYS3ABC, SYSABC4 
对于成员 CDE
SYS1CDE,         , SYS3CDE
对于成员 XYZ
         SYS2XYZ,         SYS4XYZ
图 2。 样本 SY1 SDF 面板
SY1                       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 来消除此问题。