batchManager 指令行用戶端公用程式

batchManager 指令行用戶端公用程式提供指令行介面,讓您管理在 Liberty 上執行的批次工作。

batchManager 指令行用戶端公用程式會透過批次管理器的 REST API,與批次管理程式互動。如果要使用 batchManager 指令行用戶端公用程式,批次管理程式必須正在 Liberty 伺服器上執行。請使用批次管理特性來安裝並啟用 Liberty 批次管理程式。

SSL 配置

batchManager 指令行用戶端公用程式會透過 SSL 連線,與批次管理程式互動。為了方便與正在 Liberty 伺服器上執行的批次管理程式進行 SSL 通訊,公用程式必須能夠驗證 Liberty 伺服器的 SSL 憑證。

如果 SSL 憑證由已知的憑證管理中心 (CA) 簽署,公用程式可讓 CA 驗證該憑證。不必進行進一步的配置。

如果 SSL 憑證不是由 CA 簽署,您必須執行下列其中一個動作,將公用程式配置成信任伺服器的 SSL 憑證。
  • 指定 --trustSslCertificates 選項,這會將公用程式配置成信任所有 SSL 憑證。
  • 將伺服器的 SSL 憑證包含在公用程式的信任儲存庫中。

如果您選擇指定 --trustSslCertificates 選項,公用程式會信任它所接收的所有 SSL 憑證,且不需進行進一步的配置。

如果您選擇的選項是將伺服器的 SSL 憑證包含在公用程式的信任儲存庫中,您還必須配置公用程式,讓它可以找到其信任儲存庫。此公用程式是獨立式 Java 主要程式。您將使用 javax.net.ssl.truststore 等之類的系統內容來配置 SSL。

 如果批次管理程式是在公用程式相同的機器上執行,您可以將公用程式直接指向伺服器的金鑰儲存庫:
   $ export JVM_ARGS="-Djavax.net.ssl.trustStore=/path/to/server/keystore.jks"
   $ batchManager submit ...
小心: -D 內容等之類的 JVM 引數會藉由 JVM-ARGS 環境變數,傳遞給 batchManager 指令行用戶端公用程式。
如果您無法直接使用伺服器金鑰儲存庫,您必須從伺服器金鑰儲存庫匯出伺服器憑證,再匯入至用戶端信任儲存庫。請使用 JDK keytool 公用程式來匯出和匯入憑證。在下列範例中,伺服器憑證儲存在 [server-dir]/resources/security/key.jks 金鑰儲存庫檔中的 default 別名之下,密碼是 Liberty
    $ keytool -export -alias default -file server.crt -keystore [server-dir]/resources/security/key.jks -storepass Liberty
    $ keytool -import -alias server_crt -file server.crt -keystore /path/to/truststore.jks -storepass passw0rd
小心: import 指令會建立 truststore.jks 檔(如果該檔案不存在)。
    $ export JVM_ARGS="-Djavax.net.ssl.trustStore=/path/to/truststore.jks"
    $ batchManager submit ...

指令和用法

batchManager 指令行用戶端公用程式提供一些指令,來提交、停止、重新啟動工作,以及檢查工作的狀態。

公用程式的一般用途:

$ batchManager [command] [options]

查看可用的指令清單:

$ batchManager help

查看特定指令的說明和選項:

$ batchManager help [command]

下列範例說明如何提交工作,並等待其完成:

  $ batchManager submit \
        --batchManager=<host>:<port>
        --user=[credentials for logging into the batch manager]
        --password=[credentials for logging into the batch manager]
        --applicationName=[application name used when packaging the batch app]
        --jobXMLName=[job XML file basename in the app's batch-jobs dir]
        --wait

jobParametersFile 和 jobPropertiesFile

當利用 batchManager 用戶端公用程式來提交批次工作時,jobParametersFilejobPropertiesFile 支援使用以逗點區隔的多個檔案。 在逗點區隔清單中,後面的檔案優先於清單中出現在前面的檔案。 下列範例說明逗點區隔清單的正確用法。
jobParametersFile=filePath1,filePath2,filePath3
jobPropertiesFile=filePath1,filePath2,filePath3
比方說,--jobParametersFile=<filepath1> 會置換控制內容檔中的 --jobParametersFile=<filepath1>,<filepath2>。 產生的參數是 --jobParametersFile=<filepath1>
[17.0.0.3 以及更新版本]

控制項內容和工作參數

為了建置單一工作參數集,程式一開始會是空集合,且會持續從不同來源載入內容。接著,程式會將內容合併成單一集合。 在程式讀取並載入所有來源之後,程式會將單一內容集當成工作參數傳遞給工作提交。

這個內容集是藉由依此順序合併建置而成的。當具有相同索引鍵的相同內容載入並設定多次時,後續的值會置換先前的值。在此順序中,後續步驟的優先順序高於先前步驟。

  1. 如果未以指令行參數形式包含 --jobParametersFile 參數,會依遞增優先順序,進行下列動作:
    1. 載入及合併 --jobParametersFile 控制項內容所參照之檔案的內容。此控制項內容可能只出現在一個控制項內容檔中,也可能出現在多個檔案中(如果內容被置換的話)。
    2. 載入及合併工作參數控制項內容。這些內容會結構化成控制項內容檔內的 --jobParameter=key=value
    3. 載入及合併指令行工作參數。
  2. 如果未以指令行參數形式包含 --jobParametersFile 參數,會依遞增優先順序,進行下列動作:
    1. 載入及合併 --jobParametersFile 控制項內容所參照之檔案的內容。此控制項內容可能只出現在一個控制項內容檔中,也可能出現在多個檔案中(如果內容被置換的話)。
    2. 載入及合併工作參數控制項內容。這些內容會結構化成控制項內容檔內的 --jobParameter=key=value
    3. 載入及合併指令行工作參數。

會出現此結構是因為 --controlPropertiesFile 參數的優先順序低於指令行引數。您是在哪個層次指定 --jobParametersFile 參數,會決定那些檔案的優先順序層次。

當程式依序讀取及載入每一個檔案時,程式會將找到的 --jobParametersFile--jobPropertiesFile 內容收合成單一內容。每一個內容各是另一內容的別名。使用其中一個別名的指令行引數或控制項內容置換,會取代出現在先前被置換控制項內容檔中的這兩者之一的實例。

註: 如需註解規格,請查看 Javadoc 資訊檔 java.util.Properties.load()

z/OS 上具有 SAF 金鑰環的 batchManager 指令行用戶端公用程式

如果要在 batchManager 指令行用戶端公用程式中,使用 Liberty 伺服器的「系統授權機能 (SAF)」金鑰環,您必須設定 java.environment 設定,以及 batchManager 指令行用戶端公用程式呼叫中指定的使用者 ID,且這個使用者 ID 有權讀取 SAF 金鑰環。

下列指令會授權使用者讀取 SAF 金鑰環。

重要: ringOwnerId 通常與 Liberty 伺服器的使用者 ID 相同。

PermitRingOwnerId.RingName.LST CLASS(RDATALIB)ID(userId)ACCESS(UPDATE)

SETROPTS RACLIST(RDATALIB) GENERIC(RDATALIB) REFRESH

如需相關資訊,請參閱 WebSphere Application Server z/OS Security Server RACF 指令語言參照。

下列範例定義 JVM_ARGS 環境變數。

export JVM_ARGS="-Djavax.net.ssl.trustStore=safkeyring://ringOwnerId/ringName
-Djavax.net.ssl.trustStoreType=JCERACFKS -Djavax.net.ssl.keyStore=safkeyring://ringOwnerId/ringName
-Djavax.net.ssl.keyStoreType=JCERACFKS -Dcom.ibm.ssl.keyStoreFileBased=false -Dcom.ibm.ssl.trustStoreFileBased=false
-Djava.protocol.handler.pkgs=com.ibm.crypto.provider -Djavax.net.ssl.keyStorePassword=password"
小心: javax.net.ssl.keyStorePassword 內容是必要的,且其值必須是密碼,並且用來解碼「Java 虛擬機器 (JVM)」中的金鑰資訊副本(如果存在於儲存體中)。

回覆碼

batchManager 指令行用戶端公用程式所輸出的回覆碼如下:
代碼 說明
0 作業正常完成。
20 未指定必要引數。
21 指定的引數無法辨識。
22 指定的引數值無效。
255 發生不明錯誤。
註: 如果您指定 --wait 引數,公用程式會輸出下列回覆碼,指出您正在等待之工作的狀態。
代碼 說明
33 工作已停止。
34 工作未順利完成。
35 工作已順利完成。
36 工作已被放棄。

指示主題類型的圖示 概念主題

檔名:cwlp_jbatch_commandlineutil.html