目录
注意
在本文档中,当引用文件和目录位置时,<install-home> 是指代理控制器软件包的解压缩目录。在配置文件中,还将此目录称为 %TPTP_AC_HOME%。
代理控制器读取 serviceconfig.xml 文件以获取用户可配置的设置。它只是在启动时读取一次此文件。由于对此文件所作的任何更改都将影响所有用户,所以通常会限制对此文件进行修改。
serviceconfig.xml 文件包含下列各节:
如果已定义环境变量 TPTP_AC_HOME,则代理控制器将在相对于该变量定义的路径中查找 config/serviceconfig.xml,否则它将在相对于它自己的安装位置的路径中查找该文件。serviceconfig.xml 文件的缺省位置是 <install-home>/config/serviceconfig.xml。
在同一系统上运行的每个代理控制器实例都需与可它自己的 serviceconfig.xml 版本,并且该文件必须包含不同的传输层配置。
注意
代理程序还将读取 serviceconfig.xml 文件以获取 Connection 节中的信息,从而允许代理程序与特定的代理控制器进行通信。
代理程序将读取它们的命令行以获取查找 serviceconfig.xml 文件时使用的备用位置。用于指定位置的预定义选项名是 -serviceconfig,后跟配置文件的路径名。如果在命令行上未指定此选项,代理程序就会在上述有关代理控制器的内容中描述的位置中查找 serviceconfig.xml。
serviceconfig.xml 文件中包含的元素层次结构如下所示。在同一层显示的元素的顺序并不重要。每个第一层元素(即 AgentControllerEnvironment、Logging、Agent、Plugin、ProcessController、Connection、ApplicationAliases 和 PeerConnectionTransport)都只能出现一次。层次结构中的超链接将链接到元素和属性一节中的正式元素描述。
AgentControllerConfiguration
AgentControllerEnvironment
Variable
Logging
Agent
Plugin
ProcessController
Connection
TransportLayer
Configuration
Port
PipeName
MemName
SecuredPort
FilePort
IsDataMultiplexed
ProcessPolling
Jvm
Version
SecurityEnabled
UserDefinition
Keystore
KeystorePassword
Hosts
Allow
Deny
CommandExtractor
ApplicationAliases
Application
Variable
Parameter
PeerConnectionTransport
子元素: AgentControllerEnvironment
Logging
Agent
Plugin
ProcessController
Connection
ApplicationAliases
PeerConnectionTransport
元素:AgentControllerEnvironment
定义通过代理控制器启动的所有应用程序和代理程序的全局环境设置。如果省略了此元素,则传递的环境将与代理控制器的环境完全相同。此处定义的变量不影响代理控制器本身的环境设置。
使用者:AgentControllerConfiguration
子元素:Variable
元素:Variable
这个 Variable 元素定义了一个环境变量。此元素还定义了应该如何在现有环境中定位该变量,以构造所启动的所有应用程序和代理程序的缺省环境。可以为 AgentControllerEnvironment 定义这些元素中的零个或多个。
使用者:AgentControllerEnvironment
属性:
- name
- 此字符串值指定环境变量的名称。
- value
- 此字符串值指定环境变量的值。
- position
- (可选)此字符串值是“append”、“prepend”或“replace”,它指示此环境相对于缺省环境的位置。
元素:Logging
定义要记录的信息的严重性级别、格式以及位置。如果省略此元素,则将使用 CBE 格式将所有关键警告和严重警告记录到运行代理控制器时所在的目录中。请注意, 日志文件名(tptpAgentCtrl.log)是不可配置的;您只能配置它的位置。
使用者:AgentControllerConfiguration
属性:
- level
- (可选)此字符串值指示应该记录的消息的严重性级别。每个级别都将包括该级别的事件以及更严重级别的事件。请指定下列其中一项(按严重性的递增顺序列示):
DEBUG - 包括用于提供代理控制器和代理程序中内部代码执行流程的低级详细信息的消息。- INFORMATION - 包括程序用户可能感兴趣的正常事件。
- WARNING - 包括应该不会干扰程序操作的意外事件。
- CRITICAL -(缺省值)包括指示正常程序操作已被错误中断的事件。
- SEVERE - 仅记录导致程序终止的事件。
- format
- (可选)此字符串值指定将消息写入日志文件时使用的格式。请指定下列其中一个值:
- CBE -(缺省值)将使用适合于 CBE 日志读取实用程序使用的公共基本事件格式(包括有关消息上下文和起源的详细信息)来写消息。
- Simple - 使用简单文本格式来写消息。
directory (可选)此字符串值指定日志文件的创建位置。缺省位置是从中运行代理控制器的目录。
元素:Agent
这个必需的元素指定了一个目录,代理控制器所知的代理程序将把一些子目录放到此目录中。那些子目录按名称标识该代理程序并包含 agent.xml 配置文件。此配置文件中的信息指定如何启动和管理该代理程序。
使用者:AgentControllerConfiguration
属性:
- path
- 此字符串值指定一个目录的完整路径名,将在该目录中查找代理程序配置。
元素:Plugin
此元素指定一个目录,代理控制器配置的扩展将存储在该目录中。扩展是在 pluginconfig.xml
配置文件中定义的。所指定目录下的子目录还可以包含特定于扩展的可执行文件。
元素:ProcessController使用者:AgentControllerConfiguration
属性:
- path
- 此字符串值指定一个目录的完整路径名,将在该目录中查找扩展。
元素:Connection使用者:AgentControllerConfiguration
使用者:AgentControllerEnvironment
子元素:TransportLayer
属性:
- name
- 此字符串值提供连接配置的名称。
值是定制传输方法,它们为使用原始代理控制器接口的客户机和代理程序提供了向后兼容性。使用者:Connection
子元素: Configuration
CommandExtractor
属性:
- loadlib
- 此字符串值指定要为此传输层装入的库的名称,不带后缀(即,不要指定 .dll 或 .so)。将使用查找库时搜索的正常系统路径。
- type
- 此字符串值提供此传输层的特定标识。可能的值是:TPTP_SOCKET、TPTP_NAMEDPIPE、TPTP_SHAREDMEM、TPTP_CCTL 和 TPTP_ACTL。定制传输层将使用其他标识。TPTP_CCTL 和 TPTP_ACTL
元素:Configuration
Configuration 元素包含一个子元素,后者指定每个 TransportLayer 的进程间通信机制。此处提供的通信机制是套接字、命名管道、共享内存和 CCTL。ACTL
传输层没有配置元素。定制的 TransportLayer 可以包含其他特定于那些传输层的配置元素。
使用者:TransportLayer
子元素: Port(仅适用于 socketTL 和 CCTL)
PipeName(仅适用于 namedPipeTL)
MemName(仅适用于 sharedMemTL)
SecuredPort(仅适用于 CCTL)
FilePort(仅适用于 CCTL)
IsDataMultiplexed(仅适用于 CCTL)
ProcessPolling(仅适用于 CCTL)
Jvm(仅适用于 CCTL)
Version(仅适用于 CCTL)
SecurityEnabled(仅适用于 CCTL)
UserDefinition(仅适用于 CCTL,并且仅当启用了安全性时才适用)
Keystore(仅适用于 CCTL,并且仅当启用了安全性时才适用)
KeystorePassword(仅适用于 CCTL,并且仅当启用了安全性时才适用)
Hosts(仅适用于 CCTL)
元素:Port
Port 元素指定用于进行套接字通信的端口。Port
元素只有在与 TPTP_SOCKET 和 TPTP_CCTL 传输层配合使用时才有效。它的整数值指定进行套接字连接时使用的实际端口号。
使用者:Configuration
元素:PipeName
PipeName 元素指示进行命名管道通信时使用的传输层。PipeName 元素只有在与
namedPipeTL loadlib
配合使用时才有效。它的字符串值指定建立连接时要使用的管道的名称。
使用者:Configuration
元素:MemName
MemName 元素指示进行共享内存通信时使用的传输层。MemName 元素只有在与
sharedMemTL loadlib
配合使用时才有效。它的字符串值指定建立此连接时要使用的共享内存资源的名称。
使用者:Configuration
元素:SecuredPort
SecuredPort 元素指定用于进行安全套接字通信的端口。SecuredPort
元素只有在与 TPTP_CCTL 传输层配合使用时才有效。它的整数值指定进行安全套接字连接时使用的实际端口号。
使用者:Configuration
元素:FilePort
FilePort 元素指定文件传输服务在进行套接字通信时使用的传输层。FilePort
元素只有在与 TPTP_CCTL 传输层配合使用时才有效。它的整数值指定进行套接字连接时使用的实际端口号。
使用者:Configuration
元素:IsDataMultiplexed
IsDataMultiplexed 元素指定是否应该通过代理控制器的控制通道来传输概要分析和日志记录数据。缺省情况下,数据通道使用任意端口来传输数据,并且数据传输可能会由于存在防火墙而被阻止。如果通过控制通道传输数据,就可以为通过防火墙的进入连接请求打开一组预定义的端口。这些端口包括缺省端口 10002、受保护端口 10003 和文件服务器端口 10005。此元素具有布尔值,其缺省值为“false”。IsDataMultiplexed
元素只有在与 TPTP_CCTL 传输层配合使用时才有效。
使用者:Configuration
元素:ProcessPolling
ProcessPolling 元素指定是否启用进程状态主动检查。此属性用来确保代理控制器能够在进程终止时检测到此情况。此元素具有布尔值,其缺省值为“TRUE”。ProcessPolling
元素只有在与 TPTP_CCTL 传输层配合使用时才有效。
使用者:Configuration
元素:Jvm
Jvm 元素指定文件传输组件和安全连接组件所要使用的 Java 虚拟机动态运行时库(jvm.dll 或
libjvm.so)的标准路径。Jvm
元素只有在与 TPTP_CCTL 传输层配合使用时才有效。
使用者:Configuration
元素:Version
Version 元素描述代理控制器向其他组件报告的版本号。Version
元素只有在与 TPTP_CCTL 传输层配合使用时才有效。
使用者:Configuration
元素:SecurityEnabled
SecurityEnabled 元素指示连接至此传输层的客户机是否必须连接至安全端口。如果启用了安全性,并且客户机尝试连接至不安全的端口,就会将安全端口的地址提供给该客户机,并且将拒绝该连接。此元素具有布尔值,其缺省值为“false”。SecurityEnabled
元素只有在与 TPTP_CCTL 传输层配合使用时才有效。
使用者:Configuration
元素:UserDefinition
UserDefinition 元素描述哪些用户可以连接至此传输层。如果此元素设置为“ANY”,则将允许所有能够向操作系统进行认证的用户进行连接。如果启用了安全性,则此元素是必需的。此元素是一个字符串值,它包含用户名的逗号分隔列表。UserDefinition
元素只有在与 TPTP_CCTL 传输层配合使用时才有效。
使用者:Configuration
元素:Keystore
Keystore 元素指定用于保护连接的密钥库的位置。如果启用了安全性,则此元素是必需的。Keystore
元素只有在与 TPTP_CCTL 传输层配合使用时才有效。
使用者:Configuration
元素:KeystorePassword
KeystorePassword 元素设置要与密钥库配合使用以保护连接的密码。如果启用了安全性,则此元素是必需的。KeystorePassword
元素只有在与 TPTP_CCTL 传输层配合使用时才有效。
使用者:Configuration
元素:Hosts
Hosts 元素用来控制允许哪些主机通过此传输层进行连接。此元素由一个或多个 Allow 或 Deny 元素组成。Hosts
元素只有在与 TPTP_CCTL 传输层配合使用时才有效。
使用者:Configuration
元素:Allow
Allow 元素指定一个主机,将允许该主机通过此传输层连接到代理控制器。
使用者:Hosts
属性:
- host
- 此字符串是主机的名称或 IP 地址。值“ALL”表示此传输层可以接受来自任何主机的连接。值“LOCAL”表示应该接受来自本地进程的连接。
- net
- 此属性指定一个子网,将允许来自该子网的连接。
- mask
- 此属性指定用于允许连接的子网掩码。
元素:Deny
Deny 元素指定一个主机,将不允许该主机通过此传输层连接到代理控制器。
使用者:Hosts
属性:
- host
- 此字符串是要拒绝的主机的名称或 IP 地址。
- net
- 此属性指定一个子网,将拒绝来自该子网的连接。
- mask
- 此属性指定用于拒绝连接的子网掩码。
元素:CommandExtractor
此元素定义命令抽取器。命令抽取器是传输层中的可插入组件,它从进程间通信流中抽取命令。它的字符串值指定要装入的库的名称,不带后缀(即,请不要指定 .dll 或 .so)或前缀(即,对于 Linux,请不要指定“lib”)。将使用查找库时搜索的正常系统路径。
使用者:TransportLayer
元素:ApplicationAliases
ApplicationAliases 元素是可选的应用程序别名定义列表。
使用者:AgentControllerConfiguration
子元素:Application
属性:
- launchAliasesOnly
- (可选)此字符串属性是“true”或“false”(缺省值)。如果设置为“true”,则将只启动此元素中已定义的应用程序。如果将此属性设置为“false”或者省略此属性,则可以启动任何应用程序。
元素:Application
Application 元素定义应用程序的别名和启动信息。
使用者:ApplicationAliases
子元素:Variable
参数
属性:
- executable
- 此字符串值指定 path 属性中指定的应用程序可执行文件的别名。
- location
- (可选)此字符串值指定从中启动可执行文件的目录。当该可执行文件运行时,有时将此目录称为工作目录。
- path
- 此字符串值指定要启动的应用程序的完整路径名。在启动应用程序可执行文件时,此属性用于替换别名。
元素:Variable
这个 Variable 元素定义了一个环境变量以及启动应用程序时该环境变量在现有环境应该所处的位置。可以为 Application 定义这些元素中的零个或多个。
使用者:Application
属性:
- name
- 此字符串值指定环境变量的名称。
- value
- 此字符串值指定环境变量的值。
- position
- (可选)此字符串值是“append”、“prepend”或“replace”,它指示此环境相对于缺省环境的位置。
元素:Parameter
Parameter 元素定义启动应用程序时要指定的命令行参数。可以为 Application 定义这些元素中的零个或多个。
使用者:Application
属性:
- value
- 此字符串值指定命令行参数。
- position
- (可选)此字符串值是“append”、“prepend”或“replace”,它指示此参数相对于现有命令行参数的位置。
元素: PeerConnectionTransport
此必需参数指定在读取此配置的代理控制器与对等代理控制器实例之间建立连接时使用的传输层。此元素的值名称必须与配置文件的 Connection 部分中声明的特定传输层的传输层类型名匹配(例如 TPTP_CCTL)。
使用者:AgentControllerConfiguration
此示例显示了一个代理控制器配置文件样本:
<?xml version="1.0" encoding="UTF-8"?>
<AgentControllerConfiguration>
<AgentControllerEnvironment configuration="default">
<Variable name="JAVA_PATH"
value="C:\Program Files\Java\j2re1.4.2_08\bin\java.exe" position="replace"/>
<Variable name="RASERVER_HOME"
value="C:\Eclipse\Projects\AgentController" position="replace"/>
<Variable name="TPTP_AC_HOME"
value="%RASERVER_HOME%" position="replace"/>
<Variable name="PLUGINS_HOME"
value="%RASERVER_HOME%\plugins" position="replace"/>
<Variable name="PATH" value="%RASERVER_HOME%\bin"
position="prepend"/>
</AgentControllerEnvironment>
<ApplicationAliases>
<Application configuration="default"
executable="java.exe" path="%JAVA_PATH%" location="%SYS_TEMP_DIR%">
<Variable
name="CLASSPATH" value="%CLASSPATH_ORG_ECLIPSE_EQUINOX_COMMON%"
position="append"/>
<Variable
name="PATH" value="%RASERVER_HOME%\bin" position="prepend"/>
</Application>
</ApplicationAliases>
<Plugin path="%PLUGINS_HOME%"/>
<Agent path="%TPTP_AC_HOME%\agents"/>
<Logging level="INFORMATION" format="CBE" directory="%TPTP_AC_HOME%\config"/>
<ProcessController>%TPTP_AC_HOME%\bin\tptpProcessController.exe</ProcessController>
<Connection name="Dev">
<TransportLayer loadlib="socketTL"
type="TPTP_SOCKET">
<Configuration>
<Port>10006</Port>
</Configuration>
<CommandExtractor>tptpCmdExtr</CommandExtractor>
</TransportLayer>
<TransportLayer loadlib="namedPipeTL"
type="TPTP_LOG">
<Configuration>
<PipeName>acmasterlog</PipeName>
</Configuration>
<CommandExtractor>tptpCmdExtr</CommandExtractor>
</TransportLayer>
<TransportLayer loadlib="namedPipeTL"
type="TPTP_NAMEDPIPE">
<Configuration>
<PipeName>acmaster</PipeName>
</Configuration>
<CommandExtractor>tptpCmdExtr</CommandExtractor>
</TransportLayer>
<TransportLayer loadlib="sharedMemTL"
type="TPTP_SHAREDMEM">
<Configuration>
<MemName>acbuffer</MemName>
</Configuration>
<CommandExtractor>tptpCmdExtr</CommandExtractor>
</TransportLayer>
<TransportLayer loadlib="tptpCCTL"
type="TPTP_CCTL">
<Configuration>
<Port>10002</Port>
<SecuredPort>10003</SecuredPort>
<FilePort>10005</FilePort>
<IsDataMultiplexed>false</IsDataMultiplexed>
<ProcessPolling>true</ProcessPolling>
<Jvm>C:\Program Files\Java\j2re1.4.2_08\bin\client\jvm.dll</Jvm>
<Version>4.2.0</Version>
<SecurityEnabled>true</SecurityEnabled>
<UserDefinition>ANY</UserDefinition>
<Keystore>C:\Eclipse\Projects\AgentController\security\tptpSampleKeystore</Keystore>
<KeystorePassword>password</KeystorePassword>
<Hosts configuration="default">
<Allow host="LOCAL"/>
</Hosts>
</Configuration>
<CommandExtractor>tptpCmdExtr</CommandExtractor>
</TransportLayer>
<TransportLayer loadlib="tptpACTL"
type="TPTP_ACTL">
<Configuration/>
<CommandExtractor>tptpCmdExtr</CommandExtractor>
</TransportLayer>
</Connection>
<PeerConnectionTransport>TPTP_CCTL</PeerConnectionTransport>
</AgentControllerConfiguration>
Copyright (C) 2005, 2006 Intel Corporation.