JBoss7配置指南(一)
1. 目標聽衆
這篇文檔是爲需要安裝配置JBoss Application Server(AS7)的人員編寫
1.1 開始之前
你需要知道如何下載,安裝和運行JBoss Application Server7. 如果你還不瞭解這些信息, 請參考“入門指導"
1.2 手冊中的示例
手冊種大部分的例子會使用部分XML配置文件或者是de-typed的管理模型進行表示
2. 客戶端
JBoss AS7提供三種不同的方式對服務器進行配置和管理: web,命令行和xml 配置文件形式。無論你選擇什麼樣的配置方式,配置信息都會被同步到各個方式的管理界面上,並且被存儲到xml配置文件中。
2.1 web接口
web管理客戶端是一個GWT的應用,它通過HTPP管理接口來管理域(domain)或者是單獨運行(standalone)的服務器
2.1.1 HTTP管理接入點
基於HTTP協議的管理接入點負責接入 使用http協議與管理層進行交互 客戶端。它負責接收使用JSON編解碼的協議和de-typed RPC形式的的api來對可管理的域服務器或者單獨運行服務器進行管理操作。web控制檯就是通過它來實現的,但基於HTTP協議的管理接入點也可以與其他的管理終端進行集成,交互。
基於HTTP協議的管理點會運行在域控制器(domain controller)或者是單獨運行服務器上,默認運行在9990端口上。
- <management-interfaces>
- [...]
- <http-interface interface="management" port="9990"/>
- <management-interfaces>
- <management-interfaces>
- [...]
- <http-interface interface="management" port="9990"/>
- <management-interfaces>
(參見 standalone/configuration/standalone.xml 或者 domain/configuration/host.xml)
基於HTTP協議的管理接入點運行在兩個不同的context下。一個用於運行管理的操作 另外一個提供對web管理接口的訪問。
- 域API: http://<host>:9990/management
- Web控制檯: http://<host>:9990/console
2.1.2訪問管理控制檯 :
管理控制檯和基於HTTP協議管理的API在統端口上運行,可以通過以下URL進行訪問:
- http://<host>:9990/console
2.1.3 對管理控制檯進行加密
web管理控制檯通過HTTP管理接口來對服務器進行通信。對於如何機密HTTP管理接口以及如何啓用默認的安全域,請參考一下本文中關於“加密管理接口"章節。
2.2 命令行接口
命令行方式的管理工具(CLI)提供了對域和單獨運行服務器的管理。用戶可以使用命令行來連接域服務器或者單獨運行服務器,通過傳輸de-typede的管理模型來執行管理操作。
2.2.1 Native管理接入點
Native的管理接入點負責接入使用AS內部協議與管理層進行交互的客戶端.它使用基於java對象來描述的管理操作、二進制協議和RPC形式的API 來對域和單獨運行服務器進行管理操作。命令行方式的管理工具使用它來實現對服務器的管理,單Native管理接入點也提供了極強的集成能力,可以和其他的 客戶端進行集成。
Nativeg管理接入點運行在host控制器上或者是一個單獨運行服務器上。如果使用命令行管理工具,Native管理接入點必須被啓用.默認Native管理接入點運行在9999端口上:
<native-interface interface="management" port="9999"/>
[...]
<management-interfaces>
參見 standalone/configuration/standalone.xml 或者 domain/configuration/host.xml)
2.2.2 運行命令行管理工具
根據操作系統,使用JBossAS7 bin目錄下的jboss-admin.sh或者jboss-admin.bat來啓動命令行管理工具.關於AS7目錄的詳細信息,請參考"入門指南".
命令行工具啓動以後的第一件事情就是連接被管理的Jboss AS7實例。我們通過命令connect進行:
- ./bin/jboss-admin.sh
- You are disconnected at the moment. Type 'connect' to connect to the server
- or 'help' for the list of supported commands.
- [disconnected /]
- [disconnected /] connect
- Connected to domain controller at localhost:9999
- [domain@localhost:9999 /] quit
- Closed connection to localhost:9999
- ./bin/jboss-admin.sh
- You are disconnected at the moment. Type 'connect' to connect to the server
- or 'help' for the list of supported commands.
- [disconnected /]
- [disconnected /] connect
- Connected to domain controller at localhost:9999
- [domain@localhost:9999 /] quit
- Closed connection to localhost:9999
localhost:9999 是JBossAS7域控制器客戶端連接的默認主機和端口名.主機名和端口都是可選的參數,可以被單獨或者一起指定。想要退出對話,可以鍵入quit命令來結束。
- jboss-admin腳本可以接收--cnnect參數: ./jboss-admin.sh --connenct
- jboss-admin腳本可以接收--cnnect參數: ./jboss-admin.sh --connenct
help命令用來顯示參考幫助文檔:
- [domain@localhost:9999 /] help
- Supported commands:
- cn (or cd) - change the current node path to the argument;
- connect - connect to the specified host and port;
- deploy - deploy an application;
- help (or h) - print this message;
- history - print or disable/enable/clear the history expansion.
- ls - list the contents of the node path;
- pwn (or pwd) - prints the current working node;
- quit (or q) - quit the command line interface;
- undeploy - undeploy an application;
- version - prints the version and environment information.
- add-jms-queue - creates a new JMS queue
- remove-jms-queue - removes an existing JMS queue
- add-jms-topic - creates a new JMS topic
- remove-jms-topic - removes an existing JMS topic
- add-jms-cf - creates a new JMS connection factory
- remove-jms-cf - removes an existing JMS connection factory
- data-source - allows to add new, modify and remove existing data sources
- xa-data-source - allows to add new, modify and remove existing XA data sources
查看特定命令的詳細幫助文檔,需要在命令後加"--help"參數來獲得。
2.2.3 管理請求
管理請求允許與管理模型進行低級別的交互。它不同於高級別的命令(比如創建一個jms的queue命令:create-jms-queue),使用管理請 求可以對服務器的配置像對直接對xml配置文件進行編輯而進行讀和修改操作。整個配置用一個有地址的資源樹進行表示,這個樹上的每個節點提供一系列的操作 供執行。
一個管理請求包含三個部分:地址,操作名和可選的操作參數
這是一個管理請求的規約:
- [/node-type=node-name (/node-type=node-name)*] : operation-name [( [parameter-name=parameter-value (,parameter-name=parameter-value)*] )]
舉個例子:
- /profile=production/subsystem=threads/bounded-queue-thread-pool=pool1:write-core-threads (count=0, per-cpu=20)
- Tab補全:
- 所有的命令和參數都支持tab補全。比如結點的類型,名字,操作名和參數名。我們正考慮增加別名在tab補全時可以顯示更少的選項,然後在後臺翻譯成相應的管理請求。
管理請求字符串之間的空格是不敏感的 。
2.2.3.1 管理資源的地址
管理請求可以不含有地址信息和參數,比如::read-resource, 可以列出當前Node下的所有節點類型。
在管理命令中,爲了消除歧義需要以下幾個前綴:
- " : " --- 在當前節點上執行操作,比如:
[subsystem=web] :read-resource(recursive="true")
- " ./" ---- 在當前節點的子節點上執行操作,如:
[subsystem=web] ./connector=http:read-resource
這個操作的全路徑地址是: subsystem=web,connector=http.
- " /" --- 在根節點上執行操作,如:
[subsystem=web] /:read-resource 或子節點: [subsystem=web] /subsystem=logging:read-resource
2.2.3.2 操作類型和操作描述列表
操作的類型可以分爲在任何節點上的通用操作和在特殊節點上的特殊操作(如:subsystem).通用的操作包括:
- add
- remove
- read-attribute
- write-attribute
- read-children-names
- read-children-resources
- read-children-types
- read-operation-description
- read-operation-names
- read-resource
- read-resource-description
對於特殊操作列表(比如在logging子系統上可以進行的特殊操作),可以通過管理的節點進行查詢。比如,查詢一個單獨運行服務器上logging子系統上所支持的操作:
- [[standalone@localhost:9999 /] /subsystem=logging:read-operation-names
- {
- "outcome" => "success",
- "result" => [
- "add",
- "change-root-log-level",
- "read-attribute",
- "read-children-names",
- "read-children-resources",
- "read-children-types",
- "read-operation-description",
- "read-operation-names",
- "read-resource",
- "read-resource-description",
- "remove-root-logger",
- "set-root-logger",
- "write-attribute"
- ]
- }
可以看出,logging支持三個額外特殊的操作:change-root-log-level , set-root-logger and remove-root-logger.
進一步關於被管理節點描述或者被管理節點上操作的描述,可以通過一下命令查詢:
- [standalone@localhost:9999 /] /subsystem=logging:read-operation-description(name=change-root-log-level)
- {
- "outcome" => "success",
- "result" => {
- "operation-name" => "change-root-log-level",
- "description" => "Change the root logger level.",
- "request-properties" => {"level" => {
- "type" => STRING,
- "description" => "The log level specifying which message levels will be logged by this logger.
- Message levels lower than this value will be discarded.",
- "required" => true
- }}
- }
- }
- <STRONG>遞歸模式查看全部信息輸入::read-resource(recursive=true).</STRONG>
- <strong>遞歸模式查看全部信息輸入::read-resource(recursive=true).</strong>
2.2.4 命令行歷史信息
命令行(和操作請求)歷史信息默認是開啓的。歷史信息在內存中和硬盤文件中都有保存,並且命令行歷史信息在命令行對話之間保存。
命令行歷史信息文件信息保存在名爲.jboss-cli-history的文件中,這個文件會在用戶的home目錄下自動創建。當啓動命令行模式時,這個文件會被讀入內存中來對初始化命令行歷史信息。
在命令行對話中,你可以使用上下鍵來向前和向後查閱命令行歷史信息。
命令行歷史可以通過history命令進行操作。如果history命令執行時不帶參數,它會將內存中所有的歷史命令和操作打印出來(取決於歷史信息的最大個數,默認500). history 命令支持3個可選的參數:
- disable-關閉歷史記錄功能(但不會清除已經記錄的歷史信息)
- enable-開啓歷史記錄功能(從上次關閉歷史記錄前的最後一條記錄開始)
- clear-清除內存種的歷史記錄(但不會清除文件中的信息)
2.2.5 批處理
批處理模式允許用戶以將一組命令和操作按照原子的方式執行。如果一個命令或者操作失敗,那麼在批處理中成功執行的子命令將會被回滾。
不是所有的命令都可以批處理種執行。比如: cd, ls, help等不能被轉換成操作請求的就不可以在批處理種執行。 只有可以轉換成爲操作請求的命令纔可以在批處理種執行。批處理的命令實際上是
以組合操作請求的方式執行的。
執行batch命令進入批處理模式:
- [standalone@localhost:9999 /] batch
- [standalone@localhost:9999 / #] /subsystem=datasources/data-source="java\:\/H2DS":enable
- [standalone@localhost:9999 / #] /subsystem=messaging/jms-queue="newQueue":add
run-batch執行一個批處理:
- [standalone@localhost:9999 / #] run-batch
- The batch executed successfully.
退出批處理編輯模式並且不丟失更改:
- [standalone@localhost:9999 / #] holdback-batch
- [standalone@localhost:9999 /]
稍後重新激活批處理:
- [standalone@localhost:9999 /] batch
- Re-activated batch
- #1 /subsystem=datasources/data-source=java:/H2DS:\/H2DS:enable
還有一些比較重要的批處理命令(使用tab補全來查看以下列表):
- clear-batch
- edit-batch-line (e.g. edit-batch line 3 create-jms-topic name=mytopic)
- remove-batch-line (e.g. remove-batch-line 3)
- move-batch-line (e.g. move-batch-line 3 1)
- discard-batch
2.3 配置文件
域管理和單服務器的xml配置可以在configuration子目錄下找到:
- domain/configuration/domain.xml
- domain/configuration/host.xml
- standalone/configuration/standalone.xml
一個被管理的域有兩種類型的配置:一種是對整個域的配置(domain.xml)另外一種是對每個加入到域裏主機(host)的配置 (host.xml).關於如何配置域拓詳細信息請參考"域配置"章節。xml配置是核心可靠的配置源。任何通過web接口或者命令行方式對配置的更改都 持久化到XML配置文件中.如果一個域或者單獨服務器離線,xml配置文件也可以進行手動更改,任何更改都在下一次啓動時生效。
但是,我們鼓勵用戶使用web接口或者命令行方式更改配置文件,而不是採用離線編輯的方式對配置文件進行更改。對正在處理的配置文件進行的外部更改將不會被探測到,從而有可能會被覆蓋。