asadmin get、set 與 list 指令共同為 Application Server 的抽象階層提供瀏覽機制。共有兩種階層:configuration 和 monitoring,且這些指令適用於兩者。list 指令提供管理元件 (具有唯讀或可修改的屬性) 之完全合格的帶點名稱。
configuration 階層提供可修改的屬性;而來自 monitoring 階層的管理元件只有唯讀屬性。configuration 階層並非嚴格基於網域的模式文件;而 monitoring 階層則稍有不同。
使用 list 指令以存取所要階層中的特定管理元件。接著,呼叫 get 與 set 指令以取得管理元件屬性的名稱與值,或設定手邊管理元件屬性的值。使用萬用字元 (*) 選項可擷取符合指定之完全合格的帶點名稱的所有項目。請參閱範例,以進一步瞭解可能瀏覽的階層和管理元件。
Application Server 帶點名稱使用「.」(點號) 做為分隔完整名稱各部分的分隔符。這類似在 UNIX 檔案系統中使用「/」字元,來分隔檔案的絕對路徑名稱層級。建立 get、set 與 list 指令接受的帶點名稱時,適用以下規則。請注意,某些特定指令採用某些額外的語義。
名稱中的兩個連續部分皆會以 . (點號) 來分隔。
名稱中的某部分通常可用來識別 Application Server 子系統和/或其特定實例。例如︰web-container、log-service 與 thread-pool-1 等
若名稱本身的任何部分包含 . (點號),則必須在它的前面加上 \ (反斜線) 以退出,這樣該「.」才不會被當成分隔符。
* (星號) 可用在帶點名稱中的任何地方,且它的作用如同常規表示式中的萬用字元符號。此外,* 可摺疊帶點名稱的所有部分。您可以將「<classname>this.is.really.long.hierarchy </classname>」這類較長的帶點名稱縮寫為「<classname>th*.hierarchy</classname>」。但請注意,必須一律使用 . 來分隔名稱的每個部分。
所有帶點名稱的頂層切換都是 -‐monitor 或 -m (必須在指定的指令行另行指定)。此切換是否存在,代表進行 Application Server 管理時選取哪一個階層:監視和配置。
若您知道精確的完整帶點名稱 (不含任何萬用字元符號),則 list 與 get/set 的語義將有些許差異:
list 指令會將此完整的帶點名稱視為抽象階層中父系節點的完整名稱。為 list 指令提供此名稱時,此指令只會傳回下一層子節點的名稱。例如,list server.applications.web-module 將列出已部署至該網域或預設伺服器的所有 Web 模組。
get 和 set 指令會將這個完整的帶點名稱視為節點 (其帶點名稱本身是移除此帶點名稱最後一個部分後所得的名稱) 屬性的完全合格的名稱,並取得/設定該屬性的值。若此屬性存在,則上述情況為真。您永遠不會遇到此情況,因為為了尋找階層中特定節點的屬性名稱,您必須使用萬用字元符號 *。例如,server.applications.web-module.JSPWiki.context-root* 將傳回已部署至該網域或預設伺服器之 Web 應用程式的環境根目錄。
list 指令是這三個指令的瀏覽能力基礎。若要使用 set 或 get 來設定或取得特定 Application Server 子系統的屬性,必須先知道其帶點名稱。list 指令可引導您找到該子系統的帶點名稱。例如,若要在大型檔案系統 (開頭為 /) 中找出特定檔案的修改日期 (屬性),可以使用上述指令。首先,您必須找出該檔案在檔案系統中的位置,然後檢視其屬性。因此,可用來瞭解 appserver 中階層的前兩個指令是:* list "*" 和 <command>* list * -‐monitor。請參閱 get、set 或 list 指令線上手冊,以辨別這些指令的排序輸出。