目錄
附註
表示此文件中的檔案和目錄位置時,<install-home> 是 Agent Controller 套件的解壓縮目錄。另外,在配置檔中,這個目錄也稱為 %TPTP_AC_HOME%。
Agent Controller 會讀取 serviceconfig.xml 檔來取得使用者可配置的設定。 只在啟動時讀取一次。 這個檔案的修改通常會受到限制,因為任何變更都會影響所有使用者。
serviceconfig.xml 檔包含下列區段:
如果定義了環境變數 TPTP_AC_HOME,Agent Controller 會相對於它所定義之路徑來尋找 config/serviceconfig.xml,否則,便會相對於它自己的安裝位置來尋找。 serviceconfig.xml 檔的預設位置是 <install-home>/config/serviceconfig.xml。
執行於相同系統的每個 Agent Controller 實例都需要它自己的 serviceconfig.xml 版本,其中含有不同的傳輸層配置。
附註
另外,代理程式也會讀取 serviceconfig.xml 檔來從 Connection 區段中取得資訊,從而讓代理程式與特定 Agent Controller 通訊。
代理程式會讀取它們的指令行來取得替代位置,以在其中尋找 serviceconfig.xml 檔。 用來指定位置的預定選項名稱是 -serviceconfig,後面接著配置檔的路徑名稱。 如果未在指令行中指定,代理程式會在上面所說明的 Agent Controller 的相同位置中尋找 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
定義利用 Agent Controller 來啟動的所有應用程式和代理程式的廣域環境設定。
如果省略這個元素,傳遞的環境會保持與 Agent Controller 本身的環境相同。
這裡定義的變數不會影響 Agent Controller 本身的環境設定值。
使用者:AgentControllerConfiguration
子元素: Variable
元素:Variable
這個 Variable 元素定義環境變數,以及應該如何在現有環境中將它定位,以便形成所啟動的所有應用程式和代理程式的預設環境。
AgentControllerEnvironment 可以定義零或多個這些元素。
使用者: AgentControllerEnvironment
屬性:
- name
- 這個字串值指定環境變數名稱。
- value
- 這個字串值指定環境變數值。
- position
- (選用)這個字串值是 "append"、"prepend" 或 "replace",指出相對於預設環境,這個環境的放置位置。
元素: Logging
定義要記載之資訊的嚴重性層次及其格式和位置。
如果省略這個元素,便會使用 CBE 格式將所有重要和嚴重的警告記載到 Agent Controller 執行所在的相同目錄中。
請注意,日誌檔名稱 (tptpAgentCtrl.log) 無法配置;只能配置位置。
使用者:AgentControllerConfiguration
屬性:
- level
- (選用)這個字串值指出應該記載之訊息的嚴重性層次。 每個層次都包括本身及更嚴重的所有事件。 請指定下列其中一項(依嚴重性遞增順序列出):
DEBUG - 包括提供 Agent Controller 和代理程式的內部程式碼執行串流之低階詳細資料的訊息。- INFORMATION - 包括正常但對程式使用者有用的事件。
- WARNING - 包括非預期但不應干擾程式作業的事件。
- CRITICAL -(預設值)併入指出錯誤岔斷了正常程式作業的事件。
- SEVERE - 只限造成程式終止的事件。
- format
- (選用)這個字串值指定將訊息寫入日誌檔時所用的格式。 請指定下列項目之一:
- CBE -(預設值)以適合 CBE 日誌讀取公用程式使用的 Common Base Event 格式來寫入訊息(包括環境定義的詳細資訊及訊息原點)。
- simple - 訊息會寫入簡單文字。
directory (選用)這個字串值指定將建立日誌檔的位置。 預設值是從中執行 Agent Controller 的目錄。
元素:Agent
這個必要的元素指定 Agent Controller 將識別的代理程式要在其中放置子目錄的目錄,這些子目錄依名稱來識別這些代理程式,且包含 agent.xml 配置檔,其中含有如何啟動和管理代理程式的相關資訊。
使用者:AgentControllerConfiguration
屬性:
- path
- 這個字串值指定在其中尋找代理程式配置之目錄的完整路徑名稱。
元素:Plugin
這個元素指定 Agent Controller 配置的延伸規格放在其中的目錄。
這些延伸規格定義在 pluginconfig.xml 配置檔中。
在指定目錄之下的子目錄,也可能包含特定延伸規格專用的執行檔。
元素: ProcessController使用者:AgentControllerConfiguration
屬性:
- path
- 這個字串值指定在其中尋找延伸規格之目錄的完整路徑名稱。
元素: Connection使用者:AgentControllerConfiguration
使用者: AgentControllerEnvironment
子元素: TransportLayer
屬性:
- name
- 這個字串值提供連線配置的名稱。
值是利用原始 Agent Controller 介面來提供用戶端和代理程式之舊版相容性的自訂傳輸。使用者: Connection
子元素: Configuration
CommandExtractor
屬性:
- loadlib
- 這個字串值指定這個傳輸層要載入的程式庫名稱,不含字尾(也就是不包括 .dll 或 .so)。 使用尋找程式庫的正常系統路徑搜尋。
- type
- 這個字串值提供這個傳輸層的特定身分。 可能的值如下:TPTP_SOCKET、TPTP_NAMEDPIPE、TPTP_SHAREDMEM、TPTP_CCTL 和 TPTP_ACTL。 自訂傳輸層會使用其他 ID。 TPTP_CCTL 和 TPTP_ACTL
元素: Configuration
Configuration 元素含有一個子元素,用來指定每個 TransportLayer 的跨程序通訊機制。
這裡提供的通訊機制如下:Socket、指名管道、共用記憶體和 CCTL。
ACTL 傳輸層沒有配置元素。
自訂 TransportLayers 可能會有這些傳輸層專用的其他配置元素。
使用者: TransportLayer
子元素: Port(只含 socketTL 和 CCTL)
PipeNam(只含 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 元素指定 Socket 通訊所用的埠。
只有在搭配 TPTP_SOCKET 和 TPTP_CCTL 傳輸層使用時,Port 元素才有效。
它的整數值指定建立 Socket 連線時所用的實際埠號。
使用者: Configuration
元素: PipeName
PipeName 元素指出傳輸層是用來進行指名管道通訊。
只有在搭配 namedPipeTL loadlib 使用時,PipeName 元素才有效。
它的字串值指定建立連線時所用的管道名稱。
使用者: Configuration
元素: MemName
MemName 元素指出傳輸層是用來進行共用記憶體通訊。
只有在搭配 sharedMemTL loadlib 使用時,MemName 元素才有效。
它的字串值指定建立這個連線時所用的共用記憶體資源名稱。
使用者: Configuration
元素: SecuredPort
SecuredPort 元素指定安全 Socket 通訊所用的埠。
只有在搭配 TPTP_CCTL 傳輸層使用時,SecuredPort 元素才有效。
它的整數值指定建立安全 Socket 連線時所用的實際埠號。
使用者: Configuration
元素: FilePort
FilePort 元素指定檔案轉送服務的 Socket 通訊所用的傳輸層。
只有在搭配 TPTP_CCTL 傳輸層使用時,FilePort 元素才有效。
它的整數值指定建立 Socket 連線時所用的實際埠號。
使用者: Configuration
元素: IsDataMultiplexed
IsDataMultiplexed 元素指定是否應該透過 Agent Controller 的控制通道來傳輸側寫和記載資料。
依預設,資料通道會使用任意資料傳輸埠,有可能因防火牆而遭到阻擋。
透過控制通道來轉送資料,可以針對通過防火牆的送入連線要求而開啟一組預定埠。
這些埠包括預設埠 10002、安全埠 10003 及檔案伺服器埠 10005。這個元素採用預設值為 "FALSE" 的 Boolean 值。
只有在搭配 TPTP_CCTL 傳輸層來使用時,IsDataMultiplexed 元素才有效。
使用者: Configuration
元素: ProcessPolling
ProcessPolling 元素指定是否啟用程序狀態的作用中檢查。
這個屬性用來確定當程序終止時,Agent Controller 會偵測出來。
這個元素採用預設值為 "TRUE" 的 Boolean 值。
只有在搭配 TPTP_CCTL 傳輸層來使用時,ProcessPolling 元素才有效。
使用者: Configuration
元素: Jvm
Jvm 元素指定「檔案轉送」及安全連線元件所用的「Java 虛擬機器」動態執行程式庫(jvm.dll 或 libjvm.so)的完整路徑。
只有在搭配 TPTP_CCTL 傳輸層使用時,Jvm 元素才有效。
使用者: Configuration
元素: Version
Version 元素說明向其他元件提出報告之 Agent Controller 的版本號碼。
只有在搭配 TPTP_CCTL 傳輸層使用時,Version 元素才有效。
使用者: Configuration
元素: SecurityEnabled
SecurityEnabled 元素指出連接這個傳輸層的用戶端是否必須連接至安全埠。
如果啟用安全,且用戶端試圖連接至未受保護的埠,就會將安全埠的位址提供給用戶端,且會拒絕連線。
這個元素採用預設值為 "FALSE" 的 Boolean 值。
只有在搭配 TPTP_CCTL 傳輸層來使用時,SecurityEnabled 元素才有效。
使用者: Configuration
元素: UserDefinition
UserDefinition 元素說明哪些使用者可以連接至這個傳輸層。
如果這個元素設為 "ANY",便允許所有通過 OS 鑑別的使用者連接。
如果啟用安全,便需要這個元素。
這個元素採用字串值,它是一份使用者名稱清單(用逗點分隔)。
只有在搭配 TPTP_CCTL 傳輸層來使用時,UserDefinition 元素才有效。
使用者: Configuration
元素: Keystore
Keystore 元素指定安全連線金鑰儲存庫的位置。
如果啟用安全,便需要這個元素。
只有在搭配 TPTP_CCTL 傳輸層使用時,Keystore 元素才有效。
使用者: Configuration
元素: KeystorePassword
KeystorePassword 元素設定要搭配安全連線金鑰儲存庫使用的密碼。
如果啟用安全,便需要這個元素。
只有在搭配 TPTP_CCTL 傳輸層使用時,KeystorePassword 元素才有效。
使用者: Configuration
元素: Hosts
Hosts 元素用來控制哪些主機能夠透過這個傳輸層來連接。
這個元素由一或多個 Allow 或 Deny 元素組成。
只有在搭配 TPTP_CCTL 傳輸層來使用時,Host 元素才有效。
使用者: Configuration
元素:Allow
Allow 元素指定允許 Host 透過這個傳輸層來連接至 Agent Controller。
使用者:Hosts
屬性:
- host
- 這個字串是主機的名稱或 IP 位址。 "ALL" 值表示這個傳輸層可以接受任何主機的連線。 "LOCAL" 值表示應該接受來自本端程序的連線。
- net
- 這個屬性指出容許連線的來源子網路。
- mask
- 這個屬性指出用來容許連線的子網路遮罩。
元素:Deny
Deny 元素指定不允許 Host 透過這個傳輸層來連接至 Agent Controller。
使用者:Hosts
屬性:
- host
- 這個字串是要拒絕之主機的名稱或 IP 位址。
- net
- 這個屬性指出拒絕連線的來源子網路。
- mask
- 這個屬性指出用來拒絕連線的子網路遮罩。
元素: CommandExtractor
這個元素定義一個「指令擷取程式」,它是「傳輸層」中的外掛元件,會從跨程序通訊串流中擷取指令。
它的字串值指定要載入的程式庫名稱,不含字尾(也就是不包括 .dll 或 .so)或字首(也就是 Linux 的 "lib")。
使用尋找程式庫的正常系統路徑搜尋。
使用者: TransportLayer
元素: ApplicationAliases
ApplicationAliases 元素是應用程式別名定義的選用清單。
使用者:AgentControllerConfiguration
子元素: Application
屬性:
- launchAliasesOnly
- (選用)這個 String 屬性是 "true" 或 "false"(預設值)。 如果設為 "true",便只能啟動已定義在這個元素內的應用程式。 如果這個屬性設為 "false" 或省略,便能夠啟動任何應用程式。
元素:Application
Application 元素定義應用程式的別名和啟動資訊。
使用者: ApplicationAliases
子元素 Variable
Parameter
屬性:
- executable
- 這個字串值指定 path 屬性所指定之應用程式執行檔的別名。
- location
- (選用)這個字串值指定從中啟動執行檔的目錄,有時當執行檔在執行中,稱為執行檔的工作目錄。
- path
- 這個字串值指定要啟動之應用程式的完整路徑名稱。 當啟動應用程式執行檔時,這個屬性用來取代別名。
元素:Variable
這個 Variable 元素定義環境變數,以及當應用程式啟動時,應該如何在現有環境中將它定位。
Application 可以定義零或多個這些元素。
使用者:Application
屬性:
- name
- 這個字串值指定環境變數名稱。
- value
- 這個字串值指定環境變數值。
- position
- (選用)這個字串值是 >"append"、"prepend" 或 "replace",指出相對於預設環境,這個環境要放在哪裡。
元素:Parameter
Parameter 元素定義當應用程式啟動時,將提供給應用程式的指令行引數。
Application 可以定義零或多個這些元素。
使用者:Application
屬性:
- value
- 這個字串值指定指令行引數。
- position
- (選用)這個字串值是 "append"、"prepend" 或 "replace",指出相對於現有的指令行引數,這個環境要放在哪裡。
元素: PeerConnectionTransport
這個必要的元素指定一個傳輸層,用來建立讀取這個配置的 Agent Controller 和同層級 Agent Controller 實例之間的連線。
這個元素值的名稱必須符合配置檔 Connection 區段所宣告之特定傳輸層的「傳輸層」類型名稱(如 TPTP_CCTL)。
使用者:AgentControllerConfiguration
這個範例顯示範例 Agent Controller 配置檔:
<?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.