伺服器指令選項

server 指令支援啟動、停止、建立、包裝及傾出 Liberty 伺服器。 這個主題說明可搭配 server 指令以及對等的 JAR 執行檔 ws-server.jar 使用的所有選項及結束碼。

語法

指令語法如下:

server action serverName [options]

action 的值代表 Liberty 伺服器上所能執行的作業。 請參閱 從命令提示字元取得 Liberty 的可用管理作業

附註: 如果未在指令行上指定伺服器,則會對預設伺服器實例 defaultServer(如果存在的話) 執行動作。

選項

以下是 server 指令的可用選項:
-- archive=path_to_the_target_archive_file

指定 package dump 作業的目標檔。 這個路徑可能是 Liberty 安裝根目錄的相對路徑,也可能是絕對路徑。 預設保存目標是一個含有伺服器名稱的壓縮檔,它會儲存在安裝根目錄中。 如果值含有空格,請使用引號。 這個選項可用於 packagedump 作業。

適用於分散式平台適用於 IBM i 平台如果您指定保存檔名稱的 .jar 副檔名, server 指令會建立新的自行解壓縮保存檔,您可以利用 java 指令來安裝 Liberty 伺服器。 如需相關資訊,請參閱產品說明文件中的解壓縮 Java 保存檔來安裝 Liberty。 在 z/OS® 平台上無法使用 .jar 延伸機能。

--clean
清理與指定伺服器實例相關的所有持續性快取資訊,其中包括 OSGi 解析器 meta 資料及持續性 OSGi 軟體組資料。 如果您使用這個選項,伺服器在下次啟動時,需要重新計算任何快取的資料,相較於能夠重複使用快取資料的重新啟動,可能會花更長的時間。
附註: 一般作業不需要此選項。 IBM® 服務可能會要求您在提供臨時修正程式時使用此選項,或者如果快取資料可能有問題的話。 如果您開發一項產品延伸,且您要更新 OSGi 資訊清單或打算清除持續性 OSGi 軟體組資料,可能需要這個選項。
-- include=package_option
指定要包裝的檔案,其中 package_option 可採用下列其中一個值:
  • all 指定包裝 Liberty 安裝目錄中的所有檔案。 如果 ${WLP_USER_DIR}${WLP_OUTPUT_DIR} 定義在 server.env 檔中,則會包裝它們之下的檔案。 這個值只適用於 package 作業。
  • usr 指定包裝 ${WLP_USER_DIR} 目錄中的檔案。 這個值只適用於 package 作業。
  • minify 指定只包裝執行時期環境的部分,以及 ${WLP_USER_DIR} 目錄中執行伺服器所需要的檔案,以便產生最小的保存檔。 這個值只適用於 package 作業。
-- include=diagnose_option,diagnose_option,...
指定要擷取的診斷資訊類型。 --include 的值是一份以逗點定界的值清單,其可包含下列任何值:
  • heap 用來協助診斷記憶體取用過度和記憶體洩漏,它會顯示記憶體內的存活物件,以及其間的參照關係。 在 IBM J9 虛擬機器上,產生的檔案名為 heapdump.date.time.processID.sequenceNumber.phd。 在 HotSpot 虛擬機器上,產生的檔案命名為 java.date.time.processID.sequenceNumber.hprof. 此值同時適用於 dumpjavadump 作業。
  • system 也用來協助診斷記憶體取用過度和記憶體洩漏,但它們還可用來發現虛擬機器中的問題。 只有 IBM J9 虛擬機器才支援這些傾出。 產生的檔案命名為 core.date.time.processID.sequenceNumber.dmp。 這個值適用於 dumpjavadump 作業。
  • thread 用來協助診斷當掉的執行緒、死鎖,有時可用來診斷 CPU 過量的問題。 這些傾出一律是用 server javadump 指令來建立。 在 IBM J9 虛擬機器上,產生的檔案名為 javacore.date.time.processID.sequenceNumber.txt。 在 HotSpot 虛擬機器上,產生的檔案命名為 javadump.date.time.processID.sequenceNumber.txt. 此值也可以套用至 dump 作業。
    附註: 只有在 Java™ SDK 上執行伺服器時,才支援執行緒傾出類型。 如果是以 JRE 來啟動伺服器,會有一則錯誤報告指出伺服器不支援傾出類型。 這項限制只適用於 HotSpot 虛擬機器; 任何 IBM JVM (JRE 或 SDK) 都支援執行緒 Java 傾出類型。
-- os=os_value,os_value,...
指定包裝的伺服器所要支援的作業系統。 請提供以逗點區隔的清單。 預設值為 any,指出伺服器可部署到來源所支援的任何作業系統。

若要指定不支援作業系統,請以減號 (-) 作為其字首。 如需作業系統值清單,請參閱 OSGi Alliance 網站,網址如下: https://www.osgi.org/developer/specifications/reference/#os

這個選項只適用於 package 作業,只能搭配 --include=minify 選項來使用。 如果您排除某個作業系統,之後當您對保存檔重複 minify 作業時,就無法包含它。

-- target=pausable_component,pausable_component,...
指定可暫停的特定元件清單(以逗點區隔)。 如果您指定 target 選項,則只會暫停或回復列出的元件。 如需範例目標值的清單,請參閱 從指令行暫停及回復 Liberty 伺服器

伺服器程序

伺服器處理程序是利用 server.env 檔所指定的環境變數來建立的。 依預設,會新增下列 JVM 選項:
  • 使用追蹤、監視、漸進式發佈應用程式,以及其他伺服器功能時,需要指定 -javaagent:wlp/bin/tools/ws-javaagent.jar 選項。
  • -Xshareclasses 及相關選項會在支援的 IBM J9 虛擬機器上啟用共用類別快取。 快取目錄設為 WLP_OUTPUT_DIR/.classCache
  • -XX:MaxPermSize 選項會增加 Java 8 之前 HotSpot 虛擬機器永久產生的大小。 您可以將 WLP_SKIP_MAXPERMSIZE 環境變數設為 true 以避免此預設選項,這會避免警告,例如:
    Java HotSpot(TM) 用戶端 VM 警告:忽略 MaxPermSize=256m 選項;8.0 已移除這項支援
  • -Djava.awt.headless=true 選項會避開所有平台上的 java.awt.HeadlessException,並將焦點放在 Mac OS X 上的竊取問題。

您可以利用 jvm.options 檔來置換這些預設的 JVM 選項,或新增其他 JVM 選項。 如需 server.envjvm.options 檔的相關資訊,請參閱 自訂 Liberty 環境

適用於 UNIX 平台適用於 IBM i 平台依預設,在指令執行動作之前, server 指令會設定 umask 值來拒絕 Other 使用者的所有許可權。 您可以在 server.env 檔中將 WLP_SKIP_UMASK 環境變數設為 true ,以防止伺服器指令修改 umask。 如果您設定 WLP_SKIP_UMASK 環境變數,伺服器會從作業的基礎程序來使用 umask。 在 z/OS上,您可以使用下列其中一種方式來指定 WLP_SKIP_UMASK 內容:
  • 使用 server.env 檔案。
  • 或者,如果您使用 z/OS 程序來啟動伺服器,則可以使用 STDENDV DD 項目來指定內容。

伺服器程序的現行工作目錄設為伺服器輸出目錄。

適用於 UNIX 平台適用於 IBM i 平台 server 指令會在您啟動伺服器時建立處理程序 ID (PID) 檔案,並在您停止伺服器時刪除 PID 檔案。 依預設,PID 檔設為 WLP_OUTPUT_DIR/.pid/serverName.pid。 您可以設定 PID_FILE 環境變數,來變更 PID 檔的絕對路徑,或設定 PID_DIR 環境變數,來變更 PID 目錄的絕對路徑。

當您使用 rundebug 動作時,伺服器處理程序的標準輸出和錯誤會輸出至前景主控台,當您使用 start 動作時,依預設會重新導向至 WLP_OUTPUT_DIR/serverName/logs/console.log 檔。 您可以設定 LOG_FILE 環境變數來變更日誌名稱,可以設定 LOG_DIR 環境變數來變更日誌目錄。 如需記載配置的相關資訊,請參閱 記載和追蹤

stop 動作會阻止新的應用程式要求進入伺服器,以便有時間來完成現有的要求。 在過了該時間之後,會停止其餘的伺服器元件,並結束伺服器程序。 未在容許時間內完成的應用程式要求將會失敗,但其確切的行為端視伺服器元件停止時它們的活動而定。

結束碼

以下是 server 指令及對等的 JAR 執行檔 ws-server.jar 所能使用的結束碼:
0
確定。 0 表示所要求的作業順利完成。 如果是伺服器狀態,0 表示伺服器在執行中。
1
如果是伺服器狀態,1 表示伺服器不在執行中。 如果是其他作業,它表示呼叫冗餘作業。 例如,啟動已啟動的伺服器,或停止已停止的伺服器。 如果使用無效的 Java 選項, JVM 也可能會傳回此程式碼。
2
伺服器不存在。
3
在執行中的伺服器上,呼叫不支援的動作。 例如,當呼叫 package 動作時,伺服器正在執行中。
4
在已停止的伺服器上,呼叫不支援的動作。 例如,當呼叫 dump 動作時,伺服器不在執行中。
5
不明的伺服器狀態。 例如,遺漏 workarea 目錄,或「附加 API」無法運作。
>=20
回覆碼大於或等於 20,表示執行要求時,發生錯誤。 訊息會列印及擷取在日誌檔中,且會提供錯誤的相關資訊。

使用情形

下列範例示範正確的語法:

server run
server start myserver --clean
server package myserver --archive="archivefile.zip" --include=all
server dump myserver --archive="c:\mybackup\myserver.zip" --include=thread
server javadump myserver
server javadump myserver --include=thread,system