2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WAS z/OS LibertyのARMサポート

Last updated at Posted at 2021-12-29

##はじめに

##目次

  1. ARMとは?
  2. WAS z/OS Libertyとは?
  3. WAS z/OS LibertyのARMサポートはいつから?
  4. WAS z/OS LibertyをARM再起動するとどんな風になる?
  5. WAS z/OS LibertyをARM再起動する設定は?
  6. WAS z/OS Libertyをベースに稼働する他の製品でも使える?

##1. ARMとは?

z/OSにはAutomatic Restart Manager(ARM)と呼ばれるコンポーネントがあります。ARMは、自動再起動機能を提供します。
ARMは、バッチジョブや開始タスクが予期せず終了した後に自動的にそれらを再起動することで、可用性の向上を実現するリカバリー機能です。
予期せず終了したバッチジョブや開始タスクは、通常、同じz/OSシステムで再起動されます。z/OSシステム自体に障害が発生した場合は、別のz/OSシステムで再起動されます。
ARMRestart.png

##2. WAS z/OS Libertyとは?

WAS z/OS Liberty(WebSphere Application Server for z/OS Liberty)は、2012年に出荷されたWAS z/OS V8.5から追加された新しくランタイムです。
以下のような特長があります。

  • Composable: モジュラー・ランタイム環境

    • モジュール式機能で、稼働するアプリケーションに必要な機能のみを柔軟に構成することが可能です。
  • Lightweight: 軽量

    • 構成可能なモジュラー・ランタイム環境により、従来のWASアプリケーション・サーバーより少ないメモリー使用量で稼働します。
  • Dynamic: 動的構成変更

    • ランタイム機能の多くは、構成ファイルを変更することによって動的に更新可能です。
    • アプリケーションは、USSディレクトリーのアプリケーション・ファイルを変更することで追加、更新可能です。
  • Fast: 高速

    • 非常に迅速に起動することができます。
  • Simple: シンプルな構成

    • 構成ファイルはserver.xml(必須)、jvm.options(オプション)、server.env(オプション)で、PCツールまたは手作業で編集するシンプルな構成です。
    • 構成にシステム名を含まないため、構築したz/OSとは別システム名のz/OSでも起動可能です。

WAS for z/OS Libertyのプロセスは、2種類あります。

(1) サーバー・プロセス(モジュール名bbgzsrv)
アプリケーション・サーバー本体です。
1つのJVMとして起動する、スタンドアロン・サーバーです。
複数のサーバーを起動した場合、それらは独立しており、互いに関係も持ちません。
z/OS版の場合、STCとしてSTARTコマンドによる起動が推奨です。

(2) Angelプロセス(モジュール名bbgzangl)
z/OSの許可キーで実行され、保護されたシステム・サービスへのアクセスを代理して行うプロセスです。
保護されたシステム・サービスとは、JDBC Type2 (RRS接続)、SAF(RACFなど)によるアプリケーション認証が必要な処理です。
Angelプロセスの起動はオプションです。
サーバー・プロセスを起動したときにAngelプロセスが起動されていない場合、上記の保護されたシステム・サービスの使用ができません。
サーバー・プロセスとして、 Angelプロセスが起動を前提としない機能は問題なく動作します。
Angelプロセスは、構成ファイルもTCP/IPポートも持ちません。
WAS traditionalのDaemonとは、位置づけが異なります。
z/OSイメージで稼働するすべての Liberty サーバーが、1つのAngelを共有することができます。
複数のサーバー・プロセスでAngelを共有する場合、最新バージョンサーバー・プロセスと同レベルのAngelを稼働させる必要があります。
特定のAngel・プロセスを使用しているすべてのサーバーのリストを示すには、以下の MODIFY コマンドを使用します。

Angel-MODIFYコマンド
MODIFY angel_name,DISPLAY,SERVERS
実行例
F WLP01A,DISPLAY,SERVERS                      
CWWKB0067I ANGEL DISPLAY OF ACTIVE SERVERS    
CWWKB0052I ACTIVE SERVER ASID 40 JOBNAME WLP04
CWWKB0052I ACTIVE SERVER ASID 42 JOBNAME WLP01

Angelに名前をつけると(Named Angelを使用すると)、ひとつのz/OSイメージで複数のAngelを稼働させ、特定のサーバー・プロセスで特定のAngelを使用するよう設定が可能です。
Named Angelを使用するには以下の設定が必要です。

Named-Angel設定
Named Angelへのアクセス許可のためのRACF設定を行う
  RDEF SERVER BBG.ANGEL.namedAngelName UACC(NONE)
  PERMIT BBG.ANGEL .namedAngelName CLASS(SERVER) ACCESS(READ) ID(server_id)
AngelStart ProcedureNAME=にnamed_angel名を設定する
サーバー・プロセスのbootstrap.propertiesに以下の設定をする
	com.ibm.ws.zos.core.angelName=named_angelcom.ibm.ws.zos.core.angelRequired=true

この記事では、Named Angelを前提に記載します。

##3. WAS z/OS LibertyのARMサポートはいつから?

WAS z/OS Liberty 21.0.0.5より、LibertyのAngelプロセスおよびサーバー・プロセスにてARM機能が利用可能になりました。

WAS Libertyは、継続的シングル・ストリーム・デリバリー(SSCD:Single Stream Continuous Delivery)というソフトウェア・サポート・ライフサイクル・ポリシーに準拠します。WAS Libertyは基本的に4週間ごとにFix Packが提供されます。
WAS z/OS Liberty 21.0.0.5は、2021年の5月ごろに出荷されたFix Packレベルです。

##4. WAS z/OS LibertyをARM再起動するとどんな風になる?

以下は、ARM自動再起動時のSYSLOGの抜粋です。

ARM自動再起動時のSYSLOG
C WLP04,ARMRESTART  <===【サーバー・プロセスのキャンセル】
  :
IEE301I WLP04             CANCEL COMMAND ACCEPTED
  :
IEF170I 1 WLP04    RCC030I  WLP04    STEP1     SYSTEM ABENDS 222
$HASP395 WLP04    ENDED - ABEND=S222                            
  :
S WLP04             <===【サーバー・プロセスのARM再始動】
IXC812I JOBNAME WLP04, ELEMENT WLP04 FAILED.  
THE ELEMENT WAS RESTARTED WITH PERSISTENT START TEXT.           
IXC813I JOBNAME WLP04, ELEMENT WLP04 164                        
WAS RESTARTED WITH THE FOLLOWING START TEXT:
S WLP04                                                         
THE RESTART METHOD USED WAS DETERMINED BY THE ACTIVE POLICY.
  :
+CWWKF0011I: The WLP04 server is ready to run a smarter planet. The 175
 WLP04 server started in 7.150 seconds.

サーバー・プロセスが異常終了した場合は、ARMでサーバー・プロセスを再起動可能です。
Angelプロセスが異常終了した場合は、Named Angelで、かつ、Angel必須の場合、サーバー・プロセスも一緒に異常終了します。ARMでAngelプロセスとサーバー・プロセスを再起動可能です。Named Angelで、かつ、Angel必須の場合、Angelプロセスが先に起動を完了する必要があります。

##5. WAS z/OS LibertyをARM再起動する設定は?

ARM利用時は、一般的には、z/OSシステムの計画とインストールという全体的なタスクの一部として検討されます。ここでは、簡単ではありますが、ARMを有効にする手順についても記載します。

###5.1 z/OSシステムでのARM使用可能準備

ARMを有効にするには、一般的には、以下の手順を実行します。

  1. ARM CDS(カップル・データセット)を作成・定義します。
  2. ARMポリシーを定義します。
  3. ARMポリシーを開始します。
  4. ARMを利用するバッチジョブや開始タスクで、ARMに登録するための定義をします。
  5. ARMを利用するバッチジョブや開始タスクが、起動時にARMに登録することで、自動再起動が可能になります。

ARMポリシーは、自動再起動のアクションの定義です。IBMはデフォルトのARMポリシーを提供します。z/OSで提供される管理データ・ユーティリティー(IXCMIAPU)を使用して、新しいポリシーを定義したり、Policyのデフォルトを上書きしたりすることができます。

####5.1.1. ARM CDSの作成

ARM CDS作成

ARM_CDS作成JCL
//CDS@ARM  JOB ,,MSGCLASS=X,NOTIFY=&SYSUID     
//STEP1    EXEC PGM=IXCL1DSU                   
//SYSPRINT DD   SYSOUT=*                       
//SYSIN    DD   *                              
      DEFINEDS SYSPLEX(PLXQ1)                  
           DSN(PLXQ1.ARM.CDS01) VOLSER(SYSVL1) 
           NOCATALOG                           
        DATA TYPE(ARM)                         
          ITEM NAME(POLICY)   NUMBER(5)        
          ITEM NAME(MAXELEM)  NUMBER(50)       
          ITEM NAME(TOTELEM)  NUMBER(500)      
                                               
      DEFINEDS SYSPLEX(PLXQ1)                  
           DSN(PLXQ1.ARM.CDS02) VOLSER(SYSVL2) 
           NOCATALOG                           
        DATA TYPE(ARM)                         
          ITEM NAME(POLICY)   NUMBER(5)        
          ITEM NAME(MAXELEM)  NUMBER(50)       
          ITEM NAME(TOTELEM)  NUMBER(500)      
/*                                             

####5.1.2. ARM CDSの定義

ARM CDSの定義

PARMLIB(COUPLExx)
COUPLE SYSPLEX(&SYSPLEX.)                          
            PCOUPLE(&SYSPLEX..SYSPLEX.CDS01,SYSVL1)
            ACOUPLE(&SYSPLEX..SYSPLEX.CDS02,SYSVL2)
       DATA TYPE(WLM)                              
            PCOUPLE(&SYSPLEX..WLM.CDS01,SYSVL1)    
            ACOUPLE(&SYSPLEX..WLM.CDS02,SYSVL2)    
       DATA TYPE(LOGR)                             
            PCOUPLE(&SYSPLEX..LOGR.CDS01,SYSVL1)   
            ACOUPLE(&SYSPLEX..LOGR.CDS02,SYSVL2)   
       DATA TYPE(BPXMCDS)                          
            PCOUPLE(&SYSPLEX..OMVS.CDS01,SYSVL2)   
            ACOUPLE(&SYSPLEX..OMVS.CDS02,SYSVL1)   
       DATA TYPE(ARM)                              
            PCOUPLE(&SYSPLEX..ARM.CDS01,SYSVL1)    
            ACOUPLE(&SYSPLEX..ARM.CDS02,SYSVL2)    

ARM CDSの動的定義

ARM_PRIMARY_CDS動的追加コマンド
SETXCF COUPLE,TYPE=ARM,PCOUPLE=(PLXQ1.ARM.CDS01,SYSVL1)
ARM_PRIMARY_CDS動的追加コマンドの実行結果
IXC309I SETXCF COUPLE,PCOUPLE REQUEST FOR ARM WAS ACCEPTED
IEF196I IEF237I B54E ALLOCATED TO SYS00082                
IXC286I COUPLE DATA SET                               
PLXQ1.ARM.CDS01,                                          
VOLSER SYSVL1, HAS BEEN ADDED AS THE PRIMARY              
FOR ARM ON SYSTEM SYS1                                    
IXC811I SYSTEM SYS1 IS NOW ARM CAPABLE
ARM_ALTERNATE_CDS動的追加コマンド
SETXCF COUPLE,TYPE=ARM,ACOUPLE=(PLXQ1.ARM.CDS02,SYSVL2)
ARM_ALTERNATE_CDS動的追加コマンドの実行結果
IXC309I SETXCF COUPLE,ACOUPLE REQUEST FOR ARM WAS ACCEPTED
IXC260I ALTERNATE COUPLE DATA SET REQUEST FROM SYSTEM 
SYS1 FOR ARM IS NOW BEING PROCESSED.                      
DATA SET:  PLXQ1.ARM.CDS02                                
IEF196I IEF237I B54F ALLOCATED TO SYS00083                
IXC251I NEW ALTERNATE DATA SET                    
PLXQ1.ARM.CDS02                             
FOR ARM HAS BEEN MADE AVAILABLE                           

####5.1.3 ARM Policyの開始

ARM Policyの開始(デフォルト・ポリシーで)

ARM_Policyの開始コマンド
SETXCF START,POLICY,TYPE=ARM
ARM_Policyの開始コマンドの実行結果
IXC805I ARM POLICY HAS BEEN STARTED BY SYSTEM SYS1. 
POLICY DEFAULTS ARE NOW IN EFFECT. 

###5.2. WAS z/OS LibertyをARMサポートレベルに

WAS for z/OS LibertyのARMサポートはバージョン21.0.0.5からです。バージョン21.0.0.5以上になるよう、Fix Packを適用します。

###5.3. WAS z/OS LibertyのAngelプロセスのARM設定

WAS z/OS Libertyには、Angelプロセスとサーバー・プロセスがあります。まずは、AngelプロセスのARM設定をします。

####5.3.1. ARM使用のための権限

z/OSは、以下の2つのメカニズムのいずれかによってARM APIへのアクセスを保護します。
(A) 呼び出し側がスーパーバイザ状態または認証されたキーであること
(B) プロセスの ID は、SAF FACILITY クラスの IXCARM.elementType.elementName エンティティーへの UPDATE アクセス権を持っていること
WAS for z/OS Libertyの場合、エンティティーは以下になります。
・elementType:SYSCB
・elementName:server.xmlに定義したARMエレメント名

Angelプロセスはスーパーバイザ状態であり、システム変更や操作なしにARM APIにアクセスできます。上記の(A)の条件に合致します。

サーバー・プロセスは、お客様は設定したエレメント名を使って適切なFACILITYクラスのエンティティへのアクセスを許可する必要があります。上記の(B)の条件に合致させます。

####5.3.2. ARMエレメント名の設定(スタート・プロシージャーの更新)

Angelプロセスが、ARMに登録する際のARMエレメント名をスタート・プロシージャーに設定します。

Angelスタート・プロシージャー(修正前)
//BBGZANGL PROC PARMS='',COLD=N,NAME='WLP04A',SAFLOG=Y
//*------------------------------------------------------------------   
//  SET ROOT='/usr/lpp/WebSphere/Liberty/21004'                         
//*------------------------------------------------------------------   
//* 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 SAFLOG=&SAFLOG'                             
//STDOUT    DD SYSOUT=*                                                 
//STDERR    DD SYSOUT=*                                                 
Angelスタート・プロシージャー(修正後)
//BBGZANGL PROC                                                          
//*------------------------------------------------------------------    
//* Start the Liberty angel process                                      
//*------------------------------------------------------------------    
//STEP1   EXEC PGM=BPXBATA2,REGION=0M,TIME=NOLIMIT                       
//STDPARM  DD *                                                          
PGM /usr/lpp/WebSphere/Liberty/21006/lib/native/zos/s390x/bbgzangl       
COLD=N                                                                   
NAME=WLP04A                                                              
SAFLOG=Y                                                                 
ARMEL=WLP04A                                                             
/*                                                                   
//STDOUT    DD SYSOUT=* 
//STDERR    DD SYSOUT=*     

STDPARMを使用した理由:
以下のように単純に既存のAngelスタート・プロシージャーのPARMにARMELを追記すると、ROOTのPATHの長さなどによりPARMの100文字数制限超えになる場合、JCL ErrorでAngelプロセスの起動に失敗します。
PARMの100文字数制限を超えないよう、先のAngelスタート・プロシージャー(修正後)では、STDPARMを使用し、PARMを使用しないようにしました。
PARMの100文字数制限超えメッセージ:
IEF642I EXCESSIVE PARAMETER LENGTH IN THE PARM FIELD

Angelスタート・プロシージャー(PARMにARMELを追記した例)
//STEP1   EXEC PGM=BPXBATA2,REGION=0M,TIME=NOLIMIT,                     
//      PARM='PGM &ROOT./lib/native/zos/s390x/bbgzangl COLD=&COLD NAME=X
//            &NAME &PARMS SAFLOG=&SAFLOG ARMEL=WLP04A'                 
PARM文字数
PARMS='',COLD=N,NAME='WLP04A',SAFLOG=Y
ROOT='/usr/lpp/WebSphere/Liberty/21006'
の場合
PARM='PGM /usr/lpp/WebSphere/Liberty/21006/lib/native/zos/s390x/bbgzangl COLD=N NAME=WLP04A SAFLOG=Y ARMEL=WLP04A'
で、108文字になります。

###5.4. WAS z/OS Libertyのサーバー・プロセスのARM設定

####5.4.1. ARM使用のためのRACF設定

RACF設定

RACFコマンド
RDEF FACILITY IXCARM.SYSCB.* UACC(NONE)                         
PERMIT IXCARM.SYSCB.* CLASS(FACILITY) ACCESS(UPDATE) ID(WSADMIN)
SETR RACLIST(FACILITY) GENERIC(FACILITY) REFRESH                

####5.4.2. ARMサポート・フィーチャーの有効化(server.xmlの更新)

server.xmlへARMサポート・フィーチャーを追加
<featureManager>
       :
      <feature>zosAutomaticRestartManager-1.0</feature>
</featureManager>

####5.4.3. ARMエレメント名の設定(server.xmlの更新)

server.xmlへARMエレメント名を追加
<automaticRestartManager zosArmElementName="WLP04"/>

###5.5. ARM登録の確認

####5.5.1. プロセスの起動

AngelプロセスはデフォルトでSYSLOGにメッセージが出力されます。

Angelプロセスの起動
S WLP04A                                                               
IRR812I PROFILE WLP*.* (G) IN THE STARTED CLASS WAS USED 120           
        TO START WLP04A WITH JOBNAME WLP04A.                           
$HASP100 WLP04A   ON STCINRDR                                          
IEF695I START WLP04A   WITH JOBNAME WLP04A   IS ASSIGNED TO USER       
WSADMIN , GROUP WSCFG1                                                 
$HASP373 WLP04A   STARTED                                              
CWWKB0079I THE ANGEL BUILD LEVEL IS 21.0.0.6 20210528-0200 / 124       
2021.6.0.0 20210528-0200                                               
CWWKB0084I ANGEL HAS SUCCESSFULLY REGISTERED AS ELEMENT NAME WLP04A 125
WITH THE AUTOMATIC RESTART MANAGER (ARM).                              
CWWKB0069I INITIALIZATION IS COMPLETE FOR THE WLP04A ANGEL PROCESS.    

サーバープロセスのSYSLOGにはARM関連メッセージはデフォルトでは出力されません。

サーバープロセスの起動
S WLP04                                                                
IRR812I PROFILE WLP*.* (G) IN THE STARTED CLASS WAS USED 128           
        TO START WLP04 WITH JOBNAME WLP04.                             
$HASP100 WLP04    ON STCINRDR                                          
IEF695I START WLP04    WITH JOBNAME WLP04    IS ASSIGNED TO USER       
WSADMIN , GROUP WSCFG1                                                 
$HASP373 WLP04    STARTED                                              
+CWWKE0001I: The server WLP04 has been launched.                       
+CWLIB0103I: Resource manager BBG.WLP04.DA1CA979AA7BA5D6.IBM with the  
 corresponding token ID of 010000010235a0b8000000040000000a has        
 successfully restarted with Resource Recovery Services (RRS). Number  
 of unresolved units of recovery: 0                                    
+CWLIB0104I: Recovery processing for resource manager 134              
 BBG.WLP04.DA1CA979AA7BA5D6.IBM with the corresponding token ID of     
 010000010235a0b8000000040000000a has completed.                       
+CWWKZ0001I: Application JDBCTestWeb started in 0.650 seconds.         
+CWWKZ0001I: Application MBeanWeb started in 0.776 seconds.            
+CWWKZ0001I: Application JMSQueue1Web started in 0.712 seconds.        
+CWWKF0011I: The WLP04 server is ready to run a smarter planet. The 138
 WLP04 server started in 10.922 seconds. 

サーバー・プロセスのMSGLOGには出力されます。

サーバー・プロセスのMSGLOG
[8/4/21 20:43:14:845 JST] 00000020
s.zos.restart.automanager.internal.ZosAutoRestartManagerImpl
I CWWKB0751I: This server registered with the automatic restart manager (ARM) as the WLP04 element name.

CWWKB0751IメッセージをMSGLOG以外に出力させたい場合には、server.xmlzosLoggingエレメントのhardCopyMessageプロパティーやwtoMessageプロパティーにて、CWWKB0751IメッセージをConsoleやSYSLOGに出力させるよう設定します。

####5.5.2. ARM登録の確認

ARM登録状況の表示
D XCF,ARMS,DETAIL
IXC392I  20.47.14  DISPLAY XCF 150                                     
ARM RESTARTS ARE ENABLED                                               
-------------- ELEMENT STATE SUMMARY --------------   -TOTAL-  -MAX-   
STARTING  AVAILABLE  FAILED  RESTARTING  RECOVERING                    
       0          3       0           0           0        3    500    
    :  
RESTART GROUP:DEFAULT          PACING  :    0    FREECSA:    0       0 
ELEMENT NAME :WLP04            JOBNAME :WLP04    STATE   :AVAILABLE   
  CURR SYS :SYS1               JOBTYPE :STC       ASID    :0050       
  INIT SYS :SYS1               JESGROUP:N1       TERMTYPE:ALLTERM    
  EVENTEXIT:*NONE*             ELEMTYPE:SYSCB    LEVEL   :    3       
  TOTAL RESTARTS :        0    INITIAL START:08/04/2021 20:43:14      
  RESTART THRESH :   0 OF 3    FIRST RESTART:*NONE*                   
  RESTART TIMEOUT:      300    LAST  RESTART:*NONE*                   
RESTART GROUP:DEFAULT          PACING  :    0    FREECSA:    0       0
ELEMENT NAME :WLP04A           JOBNAME :WLP04A   STATE   :AVAILABLE   
  CURR SYS :SYS1               JOBTYPE :STC       ASID    :0046       
  INIT SYS :SYS1               JESGROUP:N1       TERMTYPE:ALLTERM    
  EVENTEXIT:*NONE*             ELEMTYPE:SYSCB    LEVEL   :    3       
  TOTAL RESTARTS :        0    INITIAL START:08/04/2021 20:42:10      
  RESTART THRESH :   0 OF 3    FIRST RESTART:*NONE*                   
  RESTART TIMEOUT:      300    LAST  RESTART:*NONE*                   

###5.6. ARM Policyの調整

必要に応じて、ARM Policyの調整をします。IBMはデフォルトのARMポリシーを提供します。z/OSで提供される管理データ・ユーティリティー(IXCMIAPU)を使用して、新しいポリシーを定義したり、Policyのデフォルトを上書きしたりすることができます。

##6. WAS z/OS Libertyをベースに稼働する他の製品でもARMは使える?

WAS z/OS Libertyをベースに稼働する他の製品でもARMは使えます。
ただし、WAS for z/OS Libertyを同梱している製品では、同梱のLibertyがバージョン21.0.0.5以上でも、ARMをサポートするフィーチャーが導入されていない場合はあります。
その場合は、以下の手順でARMをサポートするフィーチャーを導入してください。

(1) 導入されたフィーチャーを確認する

featureInfo
$ cd /usr/lpp/WebSphere/Liberty/21006/bin
$ ./productInfo featureInfo
     :
zosAutomaticRestartManager-1.0 [1.0.0]

(2) 使用するLibertyバージョンのフィーチャーのリポジトリー・ファイルをダウンロードする

Fix Centralから稼働するLibertyのレベルに応じたリポジトリー・ファイルをダウンロードします。使用中のLibertyレベルが 21.0.0.9 の場合、wlp-featureRepo-21.0.0.9 で検索すると、「Directory-based Repository of Liberty 21.0.0.9 Features and Addons」 である wlp-featureRepo-21.0.0.9.zip を見つけやすいと思います。

FIX_CENTRAL
https://www.ibm.com/support/fixcentral/

(3) リポジトリー・ファイルを自システムにアップロードする

(4) リポジトリー・ファイルから自システムへライブラリーのフィーチャーを導入する

フィーチャー導入コマンド
./installUtility install zosAutomaticRestartManager-1.0 --from=/tmp/wlp-featureRepo-21.0.0.9.zip

以上

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?