在典型的应用程序服务器的配置中,动作的定义是与其相应的可执行应用程序在同一系统中的。但 也可以写一些动作来执行其它系统上的命令。在此配置下,包含 应用程序的系统被称为执行宿主机。
动作定义可以定位在会话服务器上,也可以在为会话服务器提供了动作和数据类型服务的系统上-被称为数据库服务器 或数据库宿主机。
动作的定义使用 EXEC_HOST
字段来指定其 EXEC_STRING命令在何处运行。例如,下列动作定义指定了 xload客户程序运行在名为 SysDDD的宿主机上:
Action XloadSysDDD { TYPE COMMAND EXEC_HOST SysDDD EXEC_STRING /usr/bin/X11/xload -label SysDDD }
如果 EXEC_HOST
字段中指定了不止一个宿主机名,则 桌面按顺序在每个宿主机上执行 EXEC_STRING 直至找到能执行此动作的宿主机。例如,下列EXEC_HOST
字段的定义指定了动作应首先在 SysDDD系统上尝试运行 EXEC_STRING,如此运行失败,则尝试 SysEEE。
EXEC_HOST SysDDD,SYSEEE
如果 EXEC_HOST
字段不是为动作而设置,便 缺省该值%DatabaseHost%。 %DatabaseHost%的值是由数据库的查 找路径中得到的。
例如,假设数据库的搜索路径因为向/etc/dt/config/Xsession.d/0010.dtpaths 中添加下列行 的内容而更改:
DTSPSYSDATABASEHOSTS=SysAAA:,/net/SysBBB/etc/dt/appconfig/types/C
SysAAA是由宿主机限定语法-SysAAA: 指定的。我们常常发现动作定义利用搜索路径中的此元素的值来设置数据库宿主机为SysAAA。但是,也发现动作使用/net/SysBBB... 的一部分来设置数据库宿主机为本地系统,因为语法不包括主机限定符。