在 z/OS 上管理 Liberty
在 z/OS® 平台上,您可以利用 MVS™ 操作員指令來啟動、停止或修改 Liberty。
開始之前
請確定已依照在 Liberty for z/OS 上啟用 z/OS 授權服務中所說明來設定下列安全設定檔。
- STARTED 設定檔,適用於伺服器程序及 Angel Process
- SERVER 設定檔,可供存取已授權的 z/OS 服務
![[16.0.0.4 以及更新版本]](../ng_v16004plus.gif)
每個 LPAR 可以有一個預設 Angel Process。 如果 Angel 是在 16.0.0.4 版或更新版本上啟動,您可以為 Angel 提供名稱。 這個 Angel 可以變成該 LPAR 上的另一個 Angel Process。如需 Angel 和 LPAR 的相關資訊,請參閱指名的 Angel。請儘可能確保 Angel Process 在 LPAR 上最新安裝的 Liberty 層次上執行。 如果 Liberty 伺服器實例連接至較舊的服務層次上執行的 Angel,伺服器的某些特性可能無法使用。
關於這項作業
這個主題說明如何利用 MVS 主控台來啟動、修改及停止 Liberty。您也可以從 Shell 啟動及停止伺服器,或利用 Shell 將伺服器當作一項啟動作業來啟動(請參閱從指令行啟動和停止伺服器)。
已啟動的作業是立即執行來回應操作員 START 指令的 JCL。
在 wlp/templates/zos/procs 目錄中,提供了兩個 JCL 程序範本 (PROC)。
一個範本適用於伺服器程序,另一個範本適用於 Angel Process:
- bbgzsrv 適用於 Liberty。
- bbgzangl,適用於 z/OS 平台上系統授權服務的存取控制所需要的 Angel Process。
註: 您可以在套用產品更新項目時,修改 /templates 目錄中的檔案。
範例區段提供這兩個 PROC 範本的進一步相關資訊。操作員 STOP 指令的目標是一個工作或已啟動的作業。
自訂 JCL 程序範本之後,必須將它們放在系統程序庫連結之中。 程序成員的名稱會成為 START 指令的引數。
程序
範例
下列範例顯示伺服器程序 (bbgzsrv) 的程序範本。 這個程序 (PROC) 是在 z/OS 程序庫連結內的資料集中。
//BBGZSRV PROC PARMS='defaultServer'
//*------------------------------------------------------------------
//* INSTDIR - the path to the WebSphere Liberty install.
//* This path is used to find the product code and is
//* equivalent to the WLP_INSTALL_DIR environment variable
//* in the Unix shell.
//* USERDIR - the path to the WebSphere Liberty user area.
//* This path is used to store shared and server specific
//* configuration information and is equivalent to the
//* WLP_USER_DIR environment variable in the Unix shell.
//*------------------------------------------------------------------
// SET INSTDIR='/u/MSTONE1/wlp'
// SET USERDIR='/u/MSTONE1/wlp/usr'
//*------------------------------------------------------------------
//* Start the Liberty server
//*
//* WLPUDIR - PATH DD that points to Liberty's "user"
//* directory. If the DD is not allocated, the user
//* directory location defaults to the wlp/usr directory
//* in the install tree.
//* STDOUT - Destination for stdout (System.out)
//* STDERR - Destination for stderr (System.err)
//* MSGLOG - Destination for messages.log (optional)
//* STDENV - Initial Unix environment - read by the system. The
//* installation default and server specific server
//* environment files will be merged into this environment
//* before the JVM is launched.
//*------------------------------------------------------------------
//STEP1 EXEC PGM=BPXBATSL,REGION=0M,
// PARM='PGM &INSTDIR./lib/native/zos/s390x/bbgzsrv &PARMS'
//WLPUDIR DD PATH='&USERDIR.'
//STDOUT DD SYSOUT=*
//STDERR DD SYSOUT=*
//*MSGLOG DD SYSOUT=*
//*STDENV DD PATH='/etc/system.env',PATHOPTS=(ORDONLY)
//*STDOUT DD PATH='&ROOT/std.out',
//* PATHOPTS=(OWRONLY,OCREAT,OTRUNC),
//* PATHMODE=SIRWXU
//*STDERR DD PATH='&ROOT/std.err',
//* PATHOPTS=(OWRONLY,OCREAT,OTRUNC),
//* PATHMODE=SIRWXU
附註:
- 啟動程式利用 STDENV DD 來作為起始環境,但這個 DD 是選用的。 程序的起始環境定義在 PROC 中。 它可以指向 Language Environment® 所支援的任何類型的資料集,但格式必須與所預期的相容。 以「延伸二進制編碼十進交換碼 (EBCDIC)」為例,只需指定 key=value,不需包含任何延伸。
- 允許指向現有目錄(不是檔案)的 PATH DD。 如果開啟這個 DD,傳回的 FILE 串流對 fldata 有效,因此,可以使用與 DD 相關聯的 HFS 路徑。 PROC 範本定義代表 WLP_USER_DIR 對等項目的 WLPUDIR PATH DD。
- WLP_USER_DIR 取決於下列邏輯:
- 如果定義 WLPUDIR DD,就會利用相關聯的路徑來作為 WLP_USER_DIR。
- 如果未定義 WLPUDIR,但已在起始環境中設定 WLP_USER_DIR(從 STDENV),就會使用它。
- 如果未定義 WLPUDIR,且未在起始環境中設定 WLP_USER_DIR,則會使用預設值 $WLP_INSTALL_DIR/usr。
- 環境取決於下列邏輯:
- 如果您定義 STDENV DD,則 Language Environment 會將項目讀取為起始環境。
- 如果 $WLP_INSTALL_DIR/etc/server.env 存在,且可讀取,就會讀取它的 key=value 內容,並設到環境中。 這個檔案可以是 ASCII 或 EBCDIC。 註解開始於井號 (#),直到行尾。包含空格的值可以用雙引號括住。 這個檔案所指定的任何環境項目都會置換起始環境中的項目。
- 如果 $WLP_USER_DIR/servers/{serverName}/server.env 存在,且可讀取,就會讀取它的 key=value 內容,將它設在環境中。 這個檔案也可以是 ASCII 或 EBCDIC,且支援註解。 這裡所指定的任何項目都會置換起始環境及 etc/server.env 中的項目。
- 不論使用者指定的環境為何,都會明確設定下列項目: _BPXK_WLM_PROPAGATE=NO, JAVA_THREAD_MODEL=HEAVY 和 JAVA_PROPAGATE=NO。如果未設定 _EDC_PTHREAD_YIELD,它會設為 -2。
- 設定環境之後,JAVA_HOME 取決於下列邏輯:
- 如果在環境中設定 JAVA_HOME,則會利用它的位置來作為 JAVA_HOME。
- 如果未在環境中設定 JAVA_HOME,但 $WLP_INSTALL_DIR/../java64 存在,則會利用 $WLP_INSTALL_DIR/../java64 來作為 JAVA_HOME。
- 如果未在環境中設定 JAVA_HOME,且 $WLP_INSTALL_DIR/../java64 不存在,則會利用 $WLP_INSTALL_DIR/../java 來作為 JAVA_HOME。
- 在確定 JAVA_HOME 之後,JVM 指令行選項取決於下列邏輯:
- 如果 $WLP_USER_DIR/servers/{serverName}/jvm.options 存在,且可讀取,就會讀取它的內容。 這個檔案可以是 ASCII 或 EBCDIC,檔案的每一行都必須是單一 Java 指令行引數。 註解開始於井號 (#),直到行尾。
- 如果 $WLP_USER_DIR/servers/{serverName}/jvm.options 不存在,但 $WLP_INSTALL_DIR/etc/jvm.options 存在,且可讀取,就會讀取它的內容。 這個檔案可以是 ASCII 或 EBCDIC,且每一行都必須有單一 Java 指令行引數。 支援註解。
- 不論有任何 jvm.options 的內容,-Dfile.encoding=iso8859-1、-javaagent:$WLP_INSTALL_DIR/lib/bootstrap-agent.jar 和 -classpath $WLP_INSTALL_DIR/lib/server-launcher.jar 都會在指令行上。
- 如果您想要將引數傳給 JVM,請定義 JAVAOPTS DD 陳述式,以便從這個 DD 讀取Java™ 指令行引數。
下列範例顯示範例輸入檔:
-Xmx512m -Xms256m -Daaa.bbb.ccc=something.forsomeone
- 當您利用 z/OS 程序啟動 Liberty 伺服器時,您可以自訂伺服器程序所使用的 umask。如果要自訂 umask,請用下列其中一種方式,來定義 WLP_SKIP_UMASK 和 _BPX_BATCH_UMASK
環境變數:
- 指定 WLP_SKIP_UMASK 環境變數。您可以在
server.env 檔中指定這個變數,如果是以 z/OS 程序啟動伺服器,可以在 STDENDV DD 項目之下指定此變數。在
z/OS 程序中,請在 STDENV DD 項目之下指定 _BPX_BATCH_UMASK 變數。無法在 server.env 檔中指定 _BPX_BATCH_UMASK 變數。下列範例顯示範例 umask 值自訂:
//STDENV DD * _BPX_BATCH_UMASK=XXXX WLP_SKIP_UMASK=TRUE /*
- 在 EBCDIC 編碼 z/OS
UNIX 檔中,同時指定 _BPX_BATCH_UMASK=XXXX 和 WLP_SKIP_UMASK=TRUE。在
z/OS 程序中的 STDENV DD 項目之下定義路徑。下列範例顯示範例 umask 值自訂:
//STDENV DD PATH='u/path/to/env/ebcdic/file',PATHOPTS=ORDONLY
- 指定 WLP_SKIP_UMASK 環境變數。您可以在
server.env 檔中指定這個變數,如果是以 z/OS 程序啟動伺服器,可以在 STDENDV DD 項目之下指定此變數。在
z/OS 程序中,請在 STDENV DD 項目之下指定 _BPX_BATCH_UMASK 變數。無法在 server.env 檔中指定 _BPX_BATCH_UMASK 變數。下列範例顯示範例 umask 值自訂:
下列範例顯示您在利用所配置 "defaultServer" 的範例 bbgzsrv proc 來啟動 Liberty 時,所使用的指令:
start bbgzsrv,parms='defaultServer'
下列範例顯示 Angel Process (bbgzangl) 的程序範本:
![[16.0.0.4 以及更新版本]](../ng_v16004plus.gif)
![[16.0.0.4 以及更新版本]](../ng_v16004plus.gif)
//BBGZANGL PROC PARMS='',COLD=N,NAME=''
//*------------------------------------------------------------------
// SET ROOT='/u/MSTONE1/wlp'
//*------------------------------------------------------------------
//* Start the Liberty angel process
//*------------------------------------------------------------------
//STEP1 EXEC PGM=BPXBATA2,REGION=0M,TIME=NOLIMIT,
// PARM='PGM &ROOT./lib/native/zos/s390x/bbgzangl COLD=&COLD NAME=X
// &NAME &PARMS'
//STDOUT DD SYSOUT=*
//STDERR DD SYSOUT=*