在典型的应用程序服务器的配置中,操作定义与应用程序可执行文件同在一个系统中。但也可以写一些操作来执行其他系统上的命令。在此配置下,包含应用程序的系统被称为执行主机。
操作定义可以定位在会话服务器上,也可以在为会话服务器提供操作和数据类型服务的系统上-被称为数据库服务器 或数据库主机。
操作的定义使用 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... 这一部分的操作会将数据库主机设置为本地系统,因为语法不包括主机限定符。