はじめに
以前、z/OSのシステム管理系の情報をOSSであるELKスタックに取り込んで管理できるといいんじゃないかということで、スクリプト作ってSYSLOGを取り込んだりしてみました。
この辺↓
- z/OSの新しい管理方法を探る - (1)DAパネル情報のElasticsearchへの取り込み
- z/OSの新しい管理方法を探る - (2)SYSLOGのElasticsearchへの取り込み
- z/OSの新しい管理方法を探る - (3)CICSヒストリカルデータのElasticsearchへの取り込み
これは、なるべく追加の製品機能を使わずにz/OS上のログ系の情報をElasticsearchに情報を取り込んでみるという試みでした。
実は、z/OS上の管理情報を分析系のプラットフォームに流し込むのをサポートしてくれる、CDPz(Common Data Provider for System z)という有償製品があります。今回は、上の記事の発展形ということで、このCDPzなるものを使ってどういったことができるのかを試していこうと思います。
※色々試している最中にCDPzの新しいバージョン(V2.1)が出てしまったので、CDPz V2.1をインストールし直して記事も新しいエントリー作成し直しました。
CDPz V1.1レベルの古い記事はこちら => CDPzを利用したz/OS-ELK連携: セットアップ編 (CDPz V1.1)
関連記事
CDPzを利用したz/OS-ELK連携 - (1)セットアップ編
CDPzを利用したz/OS-ELK連携 - (2)SYSLOG取得編
CDPzを利用したz/OS-ELK連携 - (3)SMF-バッチ編
CDPzを利用したz/OS-ELK連携 - (4)SMF-リアルタイム編
CDPzを利用したz/OS-ELK連携 - (5)カスタマイズ-共通
CDPzを利用したz/OS-ELK連携 - (6)カスタマイズ-SYSLOG
CDPzを利用したz/OS-ELK連携 - (7)カスタマイズ-CICS
CDPzを利用したz/OS-ELK連携 - (8)カスタマイズ-RMF Monitor III
CDPzを利用したz/OS-ELK連携 - (9)カスタマイズ-fluentdの利用
やりたいこと
z/OSのSYSLOGや、SMFの情報をElasticsearchに取り込んで、Kibanaで楽に可視化したい!
CDPzは、SYSLOGやJOBLOG, SMFのデータなどを、データ分析基盤(SplunkやELK)に連携する機能が提供されているらしいです!
ミドルウェアのパフォーマンステスト結果なんかを分析/レポーティングするのが楽になったらうれしいな。
全体像
(箱の下の数字は各コンポーネントがListenするポート番号)
※今回テストで使用する環境はHost=>ELKサーバー(Linux)へのTCPコネクションが張れない環境なので、テスト時に一時的にsshポートフォワードをする想定にしています。
CDPzは、上の全体像に図示した通り、主に4つのコンポーネントから成ります。
(1) Configuration Tool: 構成ツール
(2) Data Streamer: 収集したデータを別の分析基盤に送る
(3) Log Forwder: データ収集機能の1つ。主にSyslogやJobLogなどのデータを収集。
(4) System Data Engine: データ収集機能の1つ。SMSのデータを収集。
CDPz導入
CDPz V2.1を導入します。
参考: ProgramDirectory
FMID:
HHBO210 - Z Common Data Provider V2 Base
HHBO21L - Z Common Data Provider V2 Liberty
※CDPzではGUIのConfig Toolが提供されていますが、そのツールはz/OSMFのプラグインとして動作させるものと、Liberty上のアプリケーションとして動作させるものの、2パターン用意されているようです。"HHBO21L"というのは後者Liberty用のモジュールを提供するFMIDのようです。
今回はz/OSMFを使う想定なので、HHBO210の方をインストールすればよさそうです。
この辺の手順は基本的にSMP/Eを使う一般的な製品導入手順とあまり変わらないのですが一応ログを残しておきます。
下準備
使用するVolはZSPK01というボリュームを使用し、CDPZ02というHLQ以下に各種データセットを作成することにします。
UCAT作成
//DEFUCAT JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)
//*-----------------------------------------------------
//STEP EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEFINE USERCATALOG ( +
NAME(UCAT.CDPZ02) +
VOL(ZSPK01) +
BUFSP(8192) +
CYL(20 10) +
ICFCATALOG +
)
/*
Alias作成
//DEFALIAS JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)
//*-----------------------------------------------------
//STEP EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEF ALIAS(NAME(CDPZ02) RELATE(UCAT.CDPZ02))
/*
zFS準備
インストーラーそのものを配置したり、インストールの結果としてUSS上にファイルが作成されたりするので、その配置先としてのzFSを用意し、マウントしておきます。
参考: Installing Z Common Data Provider
上の情報によると、/usr/lpp/IBM/zcdp/v2r1m0/
が使われるようなので、このディレクトリ下を別ファイルシステムとして作成し、マウントすることにします。
USS上に/usr/lpp/IBM/zcdp/v2r1m0/
ディレクトリを作成します。
[CICS004@EPLEX1:/V1R11/usr/lpp/IBM/zcdp/v2r1m0] pwd
/V1R11/usr/lpp/IBM/zcdp/v2r1m0
CDPZ02.ZFSという名前で1200シリンダー(=18000トラック≒1GB)のzFSを作成し、マウント
//ZFSCRE JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)
//*-----------------------------------------------------
//*********************************************************************
//ALLOCZ EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEFINE CLUSTER(NAME(CDPZ02.ZFS) -
LINEAR CYLINDERS(1200 120) SHAREOPTIONS(3) VOLUMES(ZSPK01))
//*********************************************************************
//* CHECK FOR CONDITION CODE 0 - JOB ENDS IF RC IS NOT 0 *
//*********************************************************************
//RCCHCK IF ALLOCZ.RC=0 THEN
//*********************************************************************
//* FORMAT THIS STEP FORMATS YOUR NEWLY CREATED ZFS DATA SET. *
//* THIS STEP SHOULD COMPLETE WITH A RETURN CODE OF 0. *
//*********************************************************************
//FORMAT EXEC PGM=IOEAGFMT,REGION=0M,
// PARM=('-aggregate CDPZ02.ZFS -compat')
//* STEPLIB DD DSN=IOE.SIOELMOD,DISP=SHR
//SYSPRINT DD SYSOUT=*
//*********************************************************************
//* MOUNT THIS STEP MOUNTS YOUR NEWLY CREATED ZFS FILE SYSTEM *
//* USING THE AGGRGROW PARAMETER. *
//*********************************************************************
//MOUNT EXEC PGM=IKJEFT01
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSTSIN DD *
MOUNT FILESYSTEM('CDPZ02.ZFS') +
TYPE(ZFS) MODE(RDWR) PARM('AGGRGROW') +
MOUNTPOINT('/usr/lpp/IBM/zcdp/v2r1m0')
//RCCHCK ENDIF
確認
[CICS004@EPLEX1:/u/cics004/JCL/CDPZ21] df | grep zcdp
/V1R11/usr/lpp/IBM/zcdp/v2r1m0 (CDPZ02.ZFS) 1710318/1728000 4294967292 Available
IPL後の自動マウント用に、BPXPRMxxにMOUNT定義を追加しておく。
MOUNT FILESYSTEM('CDPZ02.ZFS')
MOUNTPOINT('/usr/lpp/IBM/zcdp/v2r1m0')
TYPE(ZFS) MODE(RDWR)
インストール作業
インストーラーはテープなどのメディアではなく圧縮形式のファイルをダウンロードする方式で入手している前提です(Windows PC上に入手している状態)。
FTP
インストーラーをファイルで入手しているので、それをUSS上にアップします。
USS上にインストーラーを配置するディレクトリ/usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802
を作成します(上で作成したzFS配下)。
※本来であれば、インストーラーを配置する先は製品が導入されるディレクトリとは分けて別zFSで用意するのがよいですが、テスト環境だしファイルシステム分けるのが面倒だったので、ここでは同じzFS上にのせちゃってます。あまりよろしくない構成ですので注意!
WindowsからFTPでターゲットとなるz/OSのUSSに各ファイルを転送します。
C:\y\Inst_Image\CDPz\CDPz21\CBPDO_Material>ftp eplexa
eplexa に接続しました。
220-FTP Server (user 'xxx')
220
500-Syntax error -- unknown command
500
ユーザー (eplexa:(none)): CICS004
331-Password:
331
パスワード:
230-220-FTPD1 IBM FTP CS V2R3 at EPLEX1, 02:42:26 on 2020-01-06.
230-CICS004 is logged on. Working directory is "CICS004.".
230
ftp> cd /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802
250 HFS directory /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802 is the current working directory
ftp> bin
200 Representation type is Image
ftp> prompt off
対話モード オフ。
ftp> mput *.*
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/GIMPAF.XML
250 Transfer completed successfully.
ftp: 16640 バイトが送信されました 0.01秒 1664.00KB/秒。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/GIMPAF.XSL
250 Transfer completed successfully.
ftp: 5040 バイトが送信されました 0.00秒 5040000.00KB/秒。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/S0001.CSP.STP54802.DOCLIB.pax.Z
250 Transfer completed successfully.
ftp: 32256 バイトが送信されました 0.00秒 32256000.00KB/秒。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/S0002.CSP.STP54802.RIMLIB.pax.Z
250 Transfer completed successfully.
ftp: 32256 バイトが送信されました 0.00秒 32256000.00KB/秒。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/S0003.CSP.STP54802.PGMDIR.pax.Z
250 Transfer completed successfully.
ftp: 290304 バイトが送信されました 0.04秒 7257.60KB/秒。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/S0004.CSP.CSP.README
250 Transfer completed successfully.
ftp: 11826 バイトが送信されました 0.00秒 11826000.00KB/秒。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/S0024.CSP.STP54802.GIMUNZIP
250 Transfer completed successfully.
ftp: 6399 バイトが送信されました 0.01秒 639.90KB/秒。
ローカル ファイル SMPHOLD を開けません。
ローカル ファイル SMPPTFIN を開けません。
ローカル ファイル SMPRELF を開けません。
ftp> mkdir SMPHOLD
257 "/usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPHOLD" created.
ftp> cd SMPHOLD
250 HFS directory /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPHOLD is the current working directory
ftp> mput SMPHOLD\*.*
ローカル ファイル SMPHOLD\. を開けません。
ローカル ファイル SMPHOLD\.. を開けません。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPHOLD/S0005.CSP.STP54802.HOLDDATA.pax.Z
250 Transfer completed successfully.
ftp: 1419264 バイトが送信されました 0.12秒 11729.45KB/秒。
ftp> cd ..
250 HFS directory /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802 is the current working directory
ftp> mkdir SMPPTFIN
257 "/usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPPTFIN" created.
ftp> cd SMPPTFIN
250 HFS directory /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPPTFIN is the current working directory
ftp> mput SMPPTFIN\*.*
ローカル ファイル SMPPTFIN\. を開けません。
ローカル ファイル SMPPTFIN\.. を開けません。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPPTFIN/S0006.CBCACHE.HHBO21L.SMPMCS.pax.Z
250 Transfer completed successfully.
ftp: 32256 バイトが送信されました 0.01秒 3225.60KB/秒。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPPTFIN/S0007.CBCACHE.HHBO210.SMPMCS.pax.Z
250 Transfer completed successfully.
ftp: 32256 バイトが送信されました 0.01秒 3225.60KB/秒。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPPTFIN/S0008.CBCACHE.HHBO210.PTF.UJ01103.pax.Z
250 Transfer completed successfully.
ftp: 20256768 バイトが送信されました 1.47秒 13770.75KB/秒。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPPTFIN/S0009.CBCACHE.HHBO210.PTF.UJ01319.pax.Z
250 Transfer completed successfully.
ftp: 20224512 バイトが送信されました 1.47秒 13758.17KB/秒。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPPTFIN/S0010.CBCACHE.HHBO210.PTF.UJ01485.pax.Z
250 Transfer completed successfully.
ftp: 26127360 バイトが送信されました 1.98秒 13195.64KB/秒。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPPTFIN/S0011.CSP.STP54802.ASSIGNS.pax.Z
250 Transfer completed successfully.
ftp: 1322496 バイトが送信されました 0.10秒 13094.02KB/秒。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPPTFIN/S0012.CSP.STP54802.PRODDATA.pax.Z
250 Transfer completed successfully.
ftp: 32256 バイトが送信されました 0.01秒 3225.60KB/秒。
ftp> cd ..
250 HFS directory /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802 is the current working directory
ftp> mkdir SMPRELF
257 "/usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPRELF" created.
ftp> cd SMPRELF
250 HFS directory /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPRELF is the current working directory
ftp> mput SMPRELF\*.*
ローカル ファイル SMPRELF\. を開けません。
ローカル ファイル SMPRELF\.. を開けません。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPRELF/CBCACHE.IBM.HHBO210.F1.pax.Z
250 Transfer completed successfully.
ftp: 32256 バイトが送信されました 0.01秒 4032.00KB/秒。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPRELF/CBCACHE.IBM.HHBO210.F2.pax.Z
250 Transfer completed successfully.
ftp: 32256 バイトが送信されました 0.01秒 3225.60KB/秒。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPRELF/CBCACHE.IBM.HHBO210.F3.pax.Z
250 Transfer completed successfully.
ftp: 64512 バイトが送信されました 0.01秒 6451.20KB/秒。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPRELF/CBCACHE.IBM.HHBO210.F4.pax.Z
250 Transfer completed successfully.
ftp: 741888 バイトが送信されました 0.07秒 10598.40KB/秒。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPRELF/CBCACHE.IBM.HHBO210.F5.pax.Z
250 Transfer completed successfully.
ftp: 2161152 バイトが送信されました 0.18秒 12006.40KB/秒。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPRELF/CBCACHE.IBM.HHBO210.F6.pax.Z
250 Transfer completed successfully.
ftp: 32256 バイトが送信されました 0.00秒 32256000.00KB/秒。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPRELF/CBCACHE.IBM.HHBO210.F7.pax.Z
250 Transfer completed successfully.
ftp: 419328 バイトが送信されました 0.03秒 13977.60KB/秒。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPRELF/CBCACHE.IBM.HHBO210.F8.pax.Z
250 Transfer completed successfully.
ftp: 24353280 バイトが送信されました 2.00秒 12170.55KB/秒。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPRELF/CBCACHE.IBM.HHBO210.F9.pax.Z
250 Transfer completed successfully.
ftp: 32256 バイトが送信されました 0.00秒 32256000.00KB/秒。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPRELF/CBCACHE.IBM.HHBO21L.F1.pax.Z
250 Transfer completed successfully.
ftp: 32256 バイトが送信されました 0.01秒 3225.60KB/秒。
200 Port request OK.
125 Storing data set /usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPRELF/CBCACHE.IBM.HHBO21L.F2.pax.Z
250 Transfer completed successfully.
ftp: 293594112 バイトが送信されました 23.07秒 12724.02KB/秒。
DOCLIB, RIMLIB, PGMDIR 解凍
ダウンロードしたファイル群に含まれるS0004.CSP.CSP.README
の記述を参考に...
S0024.CSP.STP54802.GIMUNZIPに提供されているUNZIPのサンプルJCLを編集して実行します。
//GIMUNZIP JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),
// USER=IBMUSER,
// PASSWORD=xxxxx
//* /*JCTRL*/
//*
//* 5751-CS3 COPYRIGHT IBM CORPORATION 1985, 2006
//*
//*
//********************************************************************
//* DO NOT TURN CAPS ON. THIS JOB CONTAINS CASE
//* SENSITIVE CONTROL CARDS.
//********************************************************************
//*
//* DOC: This job extracts CBPDO non-SMP/E files from archives
//* created by the GIMZIP program
//*
//* Change the JOB statement as required to match
//* your installation's requirements.
//*
//* NOTE 1: Change the HASH value to YES if you require
//* SHA-1 hash checking for the archive files.
//*
//* NOTE 2: If you are using SMP/E level 34.09 or higher,
//* uncomment the SMPJHOME and SMPCPATH DD
//* Statements. If you are at SMP/E 3.4, it is
//* recommended you be at least 34.09.
//*
//* NOTE 3: Change the directory name on the SMPDIR DD to
//* to match your system's SMPNTS directory name.
//* STP54802 is the subdirectory id
//* assigned to your order during the RECEIVE
//* FROMNETWORK (RFNJOB).
//*
//* NOTE 4: Replace volser on each volume control statement
//* with a valid volume serial number. Deleting this
//* control statement will cause SYSALLDA to be used
//* as the unit type.
//*
//* NOTE 5: Replace hlq on each newname control statement
//* with a valid data set high level qualifer.
//*
//*
//* Expect RC 00
//*
//*------------------------------------------------------------
//UNZIP EXEC PGM=GIMUNZIP,REGION=0M,PARM='HASH=NO' <=== NOTE 1
//SYSUT3 DD UNIT=SYSALLDA,SPACE=(CYL,(50,10))
//SYSUT4 DD UNIT=SYSALLDA,SPACE=(CYL,(25,5))
//*SMPJHOME DD PATH='/usr/lpp/java/J1.4/' <===NOTE 2
//*SMPCPATH DD PATH='/usr/lpp/smp/classes/' <===NOTE 2
//SMPOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SMPDIR DD PATH='/usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802',
// PATHDISP=KEEP
//SYSIN DD *
<GIMUNZIP>
<ARCHDEF
name="S0001.CSP.STP54802.DOCLIB.pax.Z"
volume="ZSPK01"
newname="CDPZ02.DOCLIB">
</ARCHDEF>
<ARCHDEF
name="S0002.CSP.STP54802.RIMLIB.pax.Z"
volume="ZSPK01"
newname="CDPZ02.RIMLIB">
</ARCHDEF>
<ARCHDEF
name="S0003.CSP.STP54802.PGMDIR.pax.Z"
volume="ZSPK01"
newname="CDPZ02.PGMDIR">
</ARCHDEF>
</GIMUNZIP>
/*
RELFILE 解凍
展開されたDPZ02.DOCLIB(MEMOEXT) の記述を参考に...
CDPZ02.RIMLIB(UNZIPJCL)に提供されるサンプルJCLを編集して、RELFILEを解凍します。
//UNZIPJCL JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),
// USER=IBMUSER,
// PASSWORD=xxxxx
//*
//*
//* 5751-CS3 COPYRIGHT IBM CORPORATION 1985, 2006
//*
//*
//* /*JCTRL*/
//**********************************************************
//* DO NOT TURN CAPS ON AS PATH NAMES AND SMP/E PARAMETERS
//* ARE CASE SENSITIVE.
//**********************************************************
//*
//* DOC: This job extracts a products relfile from archives
//* created by the GIMZIP program
//*
//* Change the JOB statement as required to match
//* your installation's requirements.
//*
//* NOTE 1: Change the HASH value to YES if you require
//* SHA-1 hash checking for the archive files
//*
//* NOTE 2: If you are using SMP/E level 34.09 or higher,
//* uncomment the SMPJHOME and SMPCPATH DD
//* Statements. If you are at SMP/E 3.4, it is
//* recommended you be at least 34.09.
//*
//* NOTE 3: Change the directory name on the SMPDIR DD to
//* to match your system's SMPNTS directory name.
//* STP54802 is the subdirectory id
//* assigned to your order during the RECEIVE
//* FROMNETWORK (RFNJOB).
//*
//* NOTE 4: Update parm with the name of the relfile you want
//* to unload from the SMPRELF directory
//*
//* NOTE 5: Replace volser on the volume control statement
//* with a valid volume serial number. Deleting this
//* control statement will cause SYSALLDA to be used
//* as the unit type.
//*
//* NOTE 6: Replace hlq.sample.jobs on the newname control
//* statement with a valid data set name.
//*
//*
//* Expect RC 00
//*
//*------------------------------------------------------------
//UNZIP EXEC PGM=GIMUNZIP,REGION=0M,PARM='HASH=NO'
//SYSUT3 DD UNIT=SYSALLDA,SPACE=(CYL,(10,10))
//SYSUT4 DD UNIT=SYSALLDA,SPACE=(CYL,(15,5))
//*SMPJHOME DD PATH='/usr/lpp/java/J1.4/' <===NOTE 2
//*SMPCPATH DD PATH='/usr/lpp/smp/classes/' <===NOTE 2
//SMPOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SMPDIR DD PATH='/usr/lpp/IBM/zcdp/v2r1m0/inst/STP54802/SMPRELF/',
// PATHDISP=KEEP
//SYSIN DD *
<GIMUNZIP>
<ARCHDEF
name="CBCACHE.IBM.HHBO210.F1.pax.Z"
volume="ZSPK01"
newname="CDPZ02.IBM.HHBO210.F1">
</ARCHDEF>
<ARCHDEF
name="CBCACHE.IBM.HHBO210.F2.pax.Z"
volume="ZSPK01"
newname="CDPZ02.IBM.HHBO210.F2">
</ARCHDEF>
<ARCHDEF
name="CBCACHE.IBM.HHBO210.F3.pax.Z"
volume="ZSPK01"
newname="CDPZ02.IBM.HHBO210.F3">
</ARCHDEF>
<ARCHDEF
name="CBCACHE.IBM.HHBO210.F4.pax.Z"
volume="ZSPK01"
newname="CDPZ02.IBM.HHBO210.F4">
</ARCHDEF>
<ARCHDEF
name="CBCACHE.IBM.HHBO210.F5.pax.Z"
volume="ZSPK01"
newname="CDPZ02.IBM.HHBO210.F5">
</ARCHDEF>
<ARCHDEF
name="CBCACHE.IBM.HHBO210.F6.pax.Z"
volume="ZSPK01"
newname="CDPZ02.IBM.HHBO210.F6">
</ARCHDEF>
<ARCHDEF
name="CBCACHE.IBM.HHBO210.F7.pax.Z"
volume="ZSPK01"
newname="CDPZ02.IBM.HHBO210.F7">
</ARCHDEF>
<ARCHDEF
name="CBCACHE.IBM.HHBO210.F8.pax.Z"
volume="ZSPK01"
newname="CDPZ02.IBM.HHBO210.F8">
</ARCHDEF>
<ARCHDEF
name="CBCACHE.IBM.HHBO210.F9.pax.Z"
volume="ZSPK01"
newname="CDPZ02.IBM.HHBO210.F9">
</ARCHDEF>
<ARCHDEF
name="CBCACHE.IBM.HHBO21L.F1.pax.Z"
volume="ZSPK01"
newname="CDPZ02.IBM.HHBO21L.F1">
</ARCHDEF>
<ARCHDEF
name="CBCACHE.IBM.HHBO21L.F2.pax.Z"
volume="ZSPK01"
newname="CDPZ02.IBM.HHBO21L.F2">
</ARCHDEF>
</GIMUNZIP>
/*
結果確認。以下のような形で展開される。
DSLIST - Data Sets Matching CDPZ02 Row 1 of 17
Command - Enter "/" to select action Message Volume
-------------------------------------------------------------------------------
CDPZ02 *ALIAS
CDPZ02.DOCLIB ZSPK01
CDPZ02.IBM.HHBO21L.F1 ZSPK01
CDPZ02.IBM.HHBO21L.F2 ZSPK01
CDPZ02.IBM.HHBO210.F1 ZSPK01
CDPZ02.IBM.HHBO210.F2 ZSPK01
CDPZ02.IBM.HHBO210.F3 ZSPK01
CDPZ02.IBM.HHBO210.F4 ZSPK01
CDPZ02.IBM.HHBO210.F5 ZSPK01
CDPZ02.IBM.HHBO210.F6 ZSPK01
CDPZ02.IBM.HHBO210.F7 ZSPK01
CDPZ02.IBM.HHBO210.F8 ZSPK01
CDPZ02.IBM.HHBO210.F9 ZSPK01
CDPZ02.PGMDIR ZSPK01
CDPZ02.RIMLIB ZSPK01
CDPZ02.ZFS *VSAM*
CDPZ02.ZFS.DATA ZSPK01
CSIデータセット作成
ProgramDirectoryの記述を参考に...
CDPZ02.IBM.HHBO210.F2(HBO0SMPE) をコピーして編集し、Submit。
※提供されているサンプルをそのまま使ったのですが、後のRECEIVEを実行したときに、SMPPTSデータセットがパンクしました。 以下のエラー。イケてない...。 IEC032I E37-04,IFG0554P,RCVPDO,SMPER1,SMPPTS,5187,ZSPK01,CDPZ02.SMPPTS ということで、SMPPTS部分は以下のようにサイズを変更して流しなおしました。//SMPPTS DD DSN=CDPZ02.SMPPTS,DISP=(NEW,CATLG),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=0),
// SPACE=(3120,(12000,200,300),,,ROUND)
//SMPPTS DD DSN=CDPZ02.SMPPTS,DISP=(NEW,CATLG),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=0),
// SPACE=(3120,(18000,300,300),,,ROUND)
JCL全体はこちら。
//HBO0SMPE JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)
//*
//**************************************************************/
//* JOB NAME: HBO0SMPE */
//* */
//* LICENSED MATERIALS - PROPERTY OF IBM */
//* 5698-ABN */
//* COPYRIGHT IBM CORP 2019 ALL RIGHTS RESERVED. */
//* */
//* US GOVERNMENT USERS RESTRICTED RIGHTS - */
//* USE, DUPLICATION OR DISCLOSURE RESTRICTED */
//* BY GSA ADP SCHEDULE CONTRACT WITH IBM CORP. */
//* */
//* DESCRIPTION: THIS JCL ALLOCATES SMP/E DATA SETS, */
//* DEFINES NECESSARY ZONES TO YOUR SYSTEM, AND */
//* DEFINES DDDEF ENTRIES TO PROVIDE SMP/E */
//* WITH INFORMATION IT NEEDS TO ALLOCATE */
//* PERMANENT, TEMPORARY, SYSOUT, AND WORK */
//* DATA SETS FOR */
//* IBM Z COMMON DATA PROVIDER V2.1.0 */
//* */
//* FUTURE JOBS WILL USE THE VALUES YOU SET HERE */
//* SO IF YOU USE THIS JOB KEEP IT FOR REFERENCE. */
//* */
//* */
//* CAUTION: THIS JOB REQUIRES UPDATES BEFORE SUBMITTING. */
//* */
//* */
//* NOTES: */
//* 1) CHANGE THE JOB CARD TO MEET YOUR SYSTEM'S REQUIREMENTS.*/
//* */
//* 2) YOU MUST CHANGE CDPZ02 TO YOUR SMPE HLQ. THE */
//* SAFEST WAY TO DO THIS IS DOING A GLOBAL CHANGE */
//* ON THE COMMAND LINE: */
//* */
//* "C CDPZ02 MYPREFIX ALL" */
//* */
//* THIS "CHANGE ALL" WILL TAKE CARE OF ALL OF THE */
//* SMP/E HLQ INSTANCES WITH ONE COMMAND. */
//* */
//* 3) YOU WILL NEED TO CHANGE THE ZSPK01 TO THE VOLUME */
//* ON WHICH YOU WISH TO CREATE THE SMP/E DATASETS */
//* DO A CHANGE ON THE COMMAND LINE: */
//* */
//* "C ZSPK01 MYVOLUME ALL" */
//* */
//* THIS "CHANGE ALL" WILL TAKE CARE OF ALL THE */
//* VOLUME INSTANCES WITH ONE COMMAND. */
//* */
//* 4) YOU WILL NEED TO CHANGE THE SYSALLDA TO THE UNIT TYPE */
//* ON WHICH YOU WISH TO CREATE THE SMP/E DATASETS */
//* DO A CHANGE ON THE COMMAND LINE: */
//* */
//* "C SYSALLDA MYUNITTYPE ALL" */
//* */
//* THIS "CHANGE ALL" WILL TAKE CARE OF ALL THE */
//* UNIT INSTANCES WITH ONE COMMAND. */
//* */
//**************************************************************/
//*
//**************************************************************/
//* DEFINE THE CSI DATA SET */
//**************************************************************/
//*
//DEFINE EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//CSIVOL DD UNIT=SYSALLDA,
// VOL=SER=ZSPK01,
// DISP=SHR
//SYSIN DD *
DEFINE CLUSTER -
(NAME(CDPZ02.GLOBAL.CSI) -
FREESPACE(10,5) -
KEYS(24 0) -
RECORDSIZE(24 143) -
SHAREOPTIONS(2 3) -
UNIQUE -
VOLUMES(ZSPK01) -
) -
DATA -
(NAME(CDPZ02.GLOBAL.CSI.DATA) -
CONTROLINTERVALSIZE(8192) -
CYLINDERS(50 5) -
) -
INDEX -
(NAME(CDPZ02.GLOBAL.CSI.INDEX) -
CONTROLINTERVALSIZE(4096) -
CYLINDERS(20 2) -
IMBED -
)
/*
//*
//**************************************************************/
//* PRIME CSI DATA SET */
//**************************************************************/
//*
//PRIMEIT EXEC PGM=IDCAMS,COND=(9,LT)
//SYSPRINT DD SYSOUT=*
//SMPCSI DD DSN=CDPZ02.GLOBAL.CSI,
// DISP=OLD
//ZPOOL DD DSN=SYS1.MACLIB(GIMZPOOL),
// DISP=SHR
//SYSIN DD *
REPRO OUTFILE(SMPCSI) INFILE(ZPOOL)
/*
//*
//**************************************************************/
//* INITIALIZE CSI DATA SET */
//**************************************************************/
//*
//GZONEINI EXEC PGM=GIMSMP,REGION=0M
//SYSPRINT DD SYSOUT=*
//SMPCSI DD DSN=CDPZ02.GLOBAL.CSI,
// DISP=OLD
//SMPLIST DD SYSOUT=*
//*
//**************************************************************/
//* SMP DATA SETS */
//**************************************************************/
//*
//SMPLOG DD DSN=CDPZ02.SMPLOG,DISP=(NEW,CATLG),
// UNIT=SYSALLDA,VOL=SER=ZSPK01,
// DCB=(RECFM=VB,LRECL=510,BLKSIZE=0),
// SPACE=(3200,(6000,3000),,,ROUND)
//SMPLOGA DD DSN=CDPZ02.SMPLOGA,DISP=(NEW,CATLG),
// UNIT=SYSALLDA,VOL=SER=ZSPK01,
// DCB=(RECFM=VB,LRECL=510,BLKSIZE=0),
// SPACE=(3200,(6000,3000),,,ROUND)
//SMPMTS DD DSN=CDPZ02.SMPMTS,DISP=(NEW,CATLG),
// UNIT=SYSALLDA,VOL=SER=ZSPK01,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=0),
// SPACE=(3120,(60,20,60),,,ROUND)
//SMPPTS DD DSN=CDPZ02.SMPPTS,DISP=(NEW,CATLG),
// UNIT=SYSALLDA,VOL=SER=ZSPK01,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=0),
// SPACE=(3120,(18000,300,300),,,ROUND)
//SMPSCDS DD DSN=CDPZ02.SMPSCDS,DISP=(NEW,CATLG),
// UNIT=SYSALLDA,VOL=SER=ZSPK01,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=0),
// SPACE=(3120,(400,100,300),,,ROUND)
//SMPSTS DD DSN=CDPZ02.SMPSTS,DISP=(NEW,CATLG),
// UNIT=SYSALLDA,VOL=SER=ZSPK01,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=0),
// SPACE=(3120,(400,100,150),,,ROUND)
//SMPLTS DD DSN=CDPZ02.SMPLTS,DISP=(NEW,CATLG),
// DSNTYPE=LIBRARY,
// UNIT=SYSALLDA,VOL=SER=ZSPK01,
// DCB=(RECFM=U,LRECL=0,BLKSIZE=32760),
// SPACE=(6144,(850,250,150),,,ROUND)
//SMPWRK1 DD UNIT=SYSALLDA,SPACE=(CYL,(200,10,100)),DCB=BLKSIZE=6160
//SMPWRK2 DD UNIT=SYSALLDA,SPACE=(CYL,(200,10,100)),DCB=BLKSIZE=6160
//SMPWRK3 DD UNIT=SYSALLDA,SPACE=(CYL,(200,10,100)),DCB=BLKSIZE=3200
//SMPWRK4 DD UNIT=SYSALLDA,SPACE=(CYL,(200,10,100)),DCB=BLKSIZE=3200
//SMPWRK6 DD UNIT=SYSALLDA,SPACE=(CYL,(200,10,100)),DCB=BLKSIZE=3200
//SYSUT1 DD UNIT=SYSALLDA,SPACE=(CYL,(2,1))
//SYSUT2 DD UNIT=SYSALLDA,SPACE=(CYL,(2,1))
//SYSUT3 DD UNIT=SYSALLDA,SPACE=(CYL,(2,1))
//SYSUT4 DD UNIT=SYSALLDA,SPACE=(CYL,(2,1))
//*
//**************************************************************/
//* ALLOCATION AND INITIALIZATION */
//**************************************************************/
//*
//SMPCNTL DD *
SET BDY(GLOBAL).
UCLIN .
ADD OPTIONS(ZCDPOPT)
DSPREFIX(CDPZ02)
DSSPACE(7500,500,200) .
ADD GLOBALZONE
SREL(Z038)
OPTIONS(ZCDPOPT) .
ENDUCL.
SET BDY(GLOBAL).
UCLIN.
ADD GZONE
ZONEINDEX(
(TZONE,CDPZ02.GLOBAL.CSI,TARGET)
) .
ADD GZONE
ZONEINDEX(
(DZONE,CDPZ02.GLOBAL.CSI,DLIB)
) .
ENDUCL.
SET BDY(TZONE).
UCLIN.
ADD TARGETZONE(TZONE)
OPTIONS(ZCDPOPT)
SREL(Z038)
RELATED(DZONE).
ENDUCL.
SET BDY(DZONE).
UCLIN.
ADD DLIBZONE(DZONE)
ACCJCLIN
OPTIONS(ZCDPOPT)
SREL(Z038)
RELATED(TZONE).
ENDUCL.
LIST ALLZONES.
/*
以下のデータセットが作成されたことを確認。
CDPZ02.GLOBAL.CSI *VSAM*
CDPZ02.GLOBAL.CSI.DATA ZSPK01
CDPZ02.GLOBAL.CSI.INDEX ZSPK01
...
CDPZ02.SMPLOG ZSPK01
CDPZ02.SMPLOGA ZSPK01
CDPZ02.SMPLTS ZSPK01
CDPZ02.SMPMTS ZSPK01
CDPZ02.SMPPTS ZSPK01
CDPZ02.SMPSCDS ZSPK01
CDPZ02.SMPSTS ZSPK01
Target/Distributionライブラリの作成
CDPZ02.IBM.HHBO210.F2(HBO1ALLO)をコピーして編集し、Submit。
//HBO1ALLO JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)
//**************************************************************/
//* JOB NAME: HBO1ALLO */
//* */
//* LICENSED MATERIALS - PROPERTY OF IBM */
//* 5698-ABN */
//* COPYRIGHT IBM CORP 2019 ALL RIGHTS RESERVED. */
//* */
//* US GOVERNMENT USERS RESTRICTED RIGHTS - */
//* USE, DUPLICATION OR DISCLOSURE RESTRICTED */
//* BY GSA ADP SCHEDULE CONTRACT WITH IBM CORP. */
//* */
//* DESCRIPTION: THIS JCL WILL ALLOCATE TARGET AND */
//* DISTRIBUTION LIBRARIES FOR */
//* IBM Z COMMON DATA PROVIDER V2.1.0 */
//* */
//* CAUTION: THIS JOB REQUIRES UPDATES BEFORE SUBMITTING. */
//* */
//* NOTES: */
//* 1) CHANGE THE JOB CARD TO MEET YOUR SYSTEM'S REQUIREMENTS. */
//* */
//* 2) IF A UNIT VALUE OF SYSALLDA DOES NOT WORK WITHIN YOUR */
//* LOCAL DEFINITIONS CHANGE IT IN MARKED LOCATION (2) */
//* */
//* */
//* IF YOU SPECIFY A VOLUME FOR ANY DATA SET IN THIS JOB, YOU */
//* MUST ALSO SPECIFY THE SAME VOLUME IN THE CORRESPONDING */
//* DDDEF ENTRY IN THE DDDEF JOB, HBO4DDDF. */
//* */
//* 3) CHANGE ZSPK01 TO THE VOLUME ON WHICH YOU WISH TO */
//* ALLOCATE THE TARGET LIBRARIES. */
//* */
//* 4) CHANGE ZSPK01 TO THE VOLUME ON WHICH YOU WISH TO */
//* ALLOCATE THE DISTRIBUTION LIBRARIES. */
//* */
//* 5) CHANGE CDPZ02 TO THE HIGH LEVEL QUALIFIER YOU WOULD */
//* LIKE TO USE FOR THE TARGET LIBRARIES. */
//* */
//* 6) CHANGE V2R1M0 TO THE SECOND LEVEL QUALIFIER YOU WOULD */
//* LIKE TO USE FOR THE TARGET LIBRARIES. */
//* */
//* 7) CHANGE CDPZ02 TO THE HIGH LEVEL QUALIFIER YOU WOULD */
//* LIKE TO USE FOR THE DISTRIBUTION LIBRARIES. */
//* */
//* 8) CHANGE V2R1M0 TO THE SECOND LEVEL QUALIFIER YOU WOULD */
//* LIKE TO USE FOR THE DISTRIBUTION LIBRARIES. */
//* */
//* */
//**************************************************************/
//* Allocate Libraries */
//**************************************************************/
//*
//HBOALLOC PROC UNIT=SYSALLDA, /* <==(2)
// TARGVOL=ZSPK01, /* <==(3)
// DLIBVOL=ZSPK01, /* <==(4)
// TLHLQ=CDPZ02, /* <==(5)
// TLSLQ=V2R1M0, /* <==(6)
// DLHLQ=CDPZ02, /* <==(7)
// DLSLQ=V2R1M0 /* <==(8)
//*
//IEFBR14 EXEC PGM=IEFBR14
//*
//**************************************************************/
//* Allocate Target Libraries */
//**************************************************************/
//*
//SHBOINST DD DSN=&TLHLQ..&TLSLQ..SHBOINST,
// DISP=(NEW,CATLG,DELETE),
// RECFM=FB,LRECL=80,BLKSIZE=0,
// SPACE=(TRK,(5,2,5)),
// UNIT=&UNIT,
// VOL=SER=&TARGVOL
//*
//SHBOCLST DD DSN=&TLHLQ..&TLSLQ..SHBOCLST,
// DISP=(NEW,CATLG,DELETE),
// UNIT=&UNIT,
// VOL=SER=&TARGVOL,
// SPACE=(TRK,(2,1,2)),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=0)
//*
//SHBODEFS DD DSN=&TLHLQ..&TLSLQ..SHBODEFS,
// DISP=(NEW,CATLG,DELETE),
// RECFM=VB,LRECL=255,BLKSIZE=0,
// SPACE=(TRK,(300,25,30)),
// UNIT=&UNIT,
// VOL=SER=&TARGVOL
//*
//SHBOLOAD DD DSN=&TLHLQ..&TLSLQ..SHBOLOAD,
// DISP=(NEW,CATLG,DELETE),
// RECFM=U,LRECL=0,BLKSIZE=32760,
// SPACE=(TRK,(70,10,30)),
// DSNTYPE=LIBRARY,
// UNIT=&UNIT,
// VOL=SER=&TARGVOL
//*
//SHBOLLST DD DSN=&TLHLQ..&TLSLQ..SHBOLLST,
// DISP=(NEW,CATLG,DELETE),
// UNIT=&UNIT,
// VOL=SER=&TARGVOL,
// SPACE=(TRK,(3,1,2)),
// DCB=(LRECL=0,RECFM=U,BLKSIZE=32760)
//*
//SHBOLPA DD DSN=&TLHLQ..&TLSLQ..SHBOLPA,
// DISP=(NEW,CATLG,DELETE),
// UNIT=&UNIT,
// VOL=SER=&TARGVOL,
// SPACE=(TRK,(3,1,2)),
// DCB=(LRECL=0,RECFM=U,BLKSIZE=32760)
//*
//SHBOSAMP DD DSN=&TLHLQ..&TLSLQ..SHBOSAMP,
// DISP=(NEW,CATLG,DELETE),
// RECFM=FB,LRECL=80,BLKSIZE=0,
// SPACE=(TRK,(15,2,5)),
// UNIT=&UNIT,
// VOL=SER=&TARGVOL
//*
//**************************************************************/
//* Allocate Distribution Libraries */
//**************************************************************/
//*
//AHBOCLST DD DSN=&DLHLQ..&DLSLQ..AHBOCLST,
// DISP=(NEW,CATLG,DELETE),
// UNIT=&UNIT,
// VOL=SER=&DLIBVOL,
// SPACE=(TRK,(2,1,2)),
// DCB=(LRECL=80,RECFM=FB,BLKSIZE=0)
//*
//AHBODEFS DD DSN=&DLHLQ..&DLSLQ..AHBODEFS,
// DISP=(NEW,CATLG,DELETE),
// RECFM=VB,LRECL=255,BLKSIZE=0,
// SPACE=(TRK,(300,5,25)),
// UNIT=&UNIT,
// VOL=SER=&DLIBVOL
//*
//AHBOHFS DD DSN=&DLHLQ..&DLSLQ..AHBOHFS,
// UNIT=&UNIT,
// VOL=SER=&DLIBVOL,
// SPACE=(TRK,(15,5,2)),
// DCB=(LRECL=1028,RECFM=VB,BLKSIZE=0),
// DISP=(NEW,CATLG)
//*
//AHBOHFS2 DD DSN=&DLHLQ..&DLSLQ..AHBOHFS2,
// DISP=(NEW,CATLG,DELETE),
// RECFM=VB,LRECL=27920,BLKSIZE=0,
// SPACE=(TRK,(500,30,2)),
// UNIT=&UNIT,
// VOL=SER=&DLIBVOL
//*
//AHBOINST DD DSN=&DLHLQ..&DLSLQ..AHBOINST,
// DISP=(NEW,CATLG,DELETE),
// RECFM=FB,LRECL=80,BLKSIZE=0,
// SPACE=(TRK,(2,2,2)),
// UNIT=&UNIT,
// VOL=SER=&DLIBVOL
//*
//AHBOLINK DD DSN=&DLHLQ..&DLSLQ..AHBOLINK,
// DISP=(NEW,CATLG,DELETE),
// UNIT=&UNIT,
// VOL=SER=&DLIBVOL,
// SPACE=(TRK,(2,1,2)),
// DCB=(LRECL=0,RECFM=U,BLKSIZE=32760)
//*
//AHBOLOAD DD DSN=&DLHLQ..&DLSLQ..AHBOLOAD,
// DISP=(NEW,CATLG,DELETE),
// RECFM=U,LRECL=0,BLKSIZE=32760,
// SPACE=(TRK,(75,1,65)),
// DSNTYPE=LIBRARY,
// UNIT=&UNIT,
// VOL=SER=&DLIBVOL
//*
//AHBOSAMP DD DSN=&DLHLQ..&DLSLQ..AHBOSAMP,
// DISP=(NEW,CATLG,DELETE),
// RECFM=FB,LRECL=80,BLKSIZE=0,
// SPACE=(TRK,(10,2,2)),
// UNIT=&UNIT,
// VOL=SER=&DLIBVOL
//*
//HBOALLOC PEND
//ALLOCATE EXEC HBOALLOC
//*
//
以下のデータセットが作成されたことを確認。
CDPZ02.V2R1M0.AHBOCLST ZSPK01
CDPZ02.V2R1M0.AHBODEFS ZSPK01
CDPZ02.V2R1M0.AHBOHFS ZSPK01
CDPZ02.V2R1M0.AHBOHFS2 ZSPK01
CDPZ02.V2R1M0.AHBOINST ZSPK01
CDPZ02.V2R1M0.AHBOLINK ZSPK01
CDPZ02.V2R1M0.AHBOLOAD ZSPK01
CDPZ02.V2R1M0.AHBOSAMP ZSPK01
CDPZ02.V2R1M0.SHBOCLST ZSPK01
CDPZ02.V2R1M0.SHBODEFS ZSPK01
CDPZ02.V2R1M0.SHBOINST ZSPK01
CDPZ02.V2R1M0.SHBOLLST ZSPK01
CDPZ02.V2R1M0.SHBOLOAD ZSPK01
CDPZ02.V2R1M0.SHBOLPA ZSPK01
CDPZ02.V2R1M0.SHBOSAMP ZSPK01
USS上のディレクトリ作成
CDPZ02.IBM.HHBO210.F2(HBO3RMKD) をコピーして編集し、Submit。
//HBO3RMKD JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)
//**************************************************************/
//* JOB NAME = HBO3RMKD */
//* */
//* LICENSED MATERIALS - PROPERTY OF IBM */
//* 5698-ABN */
//* COPYRIGHT IBM CORP 2019 ALL RIGHTS RESERVED. */
//* */
//* US GOVERNMENT USERS RESTRICTED RIGHTS - */
//* USE, DUPLICATION OR DISCLOSURE RESTRICTED */
//* BY GSA ADP SCHEDULE CONTRACT WITH IBM CORP. */
//* */
//**************************************************************/
//* */
//* DESCRIPTION: THIS JCL WILL EXECUTE THE HBOMKDIR EXEC TO */
//* CREATE THE NECESSARY DIRECTORIES USED BY */
//* IBM Z COMMON DATA PROVIDER V2.1.0 */
//* */
//* CAUTION: THIS JOB REQUIRES UPDATES BEFORE SUBMITTING. */
//* */
//* 1) ADD A JOB CARD TO MEET YOUR SYSTEM REQUIREMENTS */
//* */
//* 2) IF YOU ARE APPLYING THIS FUNCTION FOR THE FIRST TIME, */
//* THE HBOMKDIR EXEC WILL RESIDE IN AN SMP/E TEMPORARY */
//* LIBRARY SO USE THE FIRST //SYSEXEC STATEMENT BELOW. */
//* CHANGE -dsprefix- TO MATCH THE QUALIFIER(S) FOR THE */
//* OF THE TEMPORARY DATASET. (RELFILE) */
//* */
//* IF YOU ARE RUNNING THIS JOB TO INSTALL SERVICE ON A */
//* FUNCTION THAT HAS ALREADY BEEN APPLYED, THE MKDIR EXEC */
//* WILL RESIDE IN A TARGET LIBRARY, SO UNCOMMENT THE */
//* SECOND SYSEXEC STATEMENT BELOW AND COMMENT */
//* OUT THE FIRST. CHANGE -hlqual- TO THE AOORIORUATE */
//* HIGH-LEVEL QUALIFIER THAT COMPLIES WITH YOUR SITE'S */
//* NAMING STANDARDS. */
//* */
//* 3) CHANGE THE STRING -PathPrefix- TO THE APPROPRIATE */
//* high-level directory name. For users installing in the */
//* ROOT, THIS WOULD BE "/". FOR OTHERS, THE HIGH-LEVEL */
//* DIRECTORY MAY BE SOMETHING LIKE "/SERVICE" OR A MORE */
//* MEANINGFUL NAME. PLEASE NOTE THE REPLACEMENT STRING IS */
//* CASE SENSITIVE. ENSURE THE -Pathprefix- IS AN ABSOLUTE */
//* PATH NAME WHICH BEGINS AND ENDS WITH A SLASH (/). */
//* */
//* HINT: THIS WOULD BE THE SAME AS THE -PathPrefix- */
//* YOU USED IN HBO2AZFS */
//* */
//* */
//* 4) ENSURE THE HIGH-LEVEL DIRECTORY NAME SPECIFIED EXISTS */
//* PRIOR TO RUNNING THIS JOB. */
//* */
//* 5) ENSURE YOU EXECUTE THIS JOB FROM A USERID THAT IS */
//* UID=0 OR IS THE OWNER OF THE HIGH-LEVEL DIRECTORY NAME */
//* SPECIFIED. */
//* */
//* 6) THIS JOB SHOULD END WITH RC=0. IF NOT THEN, PLEASE */
//* CHECK Z/OS UNIX SYSTEM SERVICES MESSAGES AND CODES */
//* BOOK TO CORRECT THE PROBLEM AND RESUBMIT THIS JOB. */
//* */
//**************************************************************/
//IKJEFT01 EXEC PGM=IKJEFT01
//SYSEXEC DD DSN=CDPZ02.IBM.HHBO210.F2,
//*SYSEXEC DD DSN=-hlqual-.SHBOINST,
// DISP=SHR
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
PROF MSGID
HBOMKDIR /
/*
//
以下のようなディレクトリが作成されていることを確認。
[CICS004@EPLEX1:/V1R11/usr/lpp/IBM/zcdp/v2r1m0] ls -la
total 96
drwxr-xr-x 8 0 CICS 8192 Jan 6 15:13 .
drwxr-xr-x 3 0 OMVSGRP 8192 Jan 6 11:04 ..
drwxr-xr-x 2 0 CICS 0 Jan 6 15:13 DEPS
drwxr-xr-x 4 0 CICS 8192 Jan 6 15:13 DS
drwxr-xr-x 2 0 CICS 0 Jan 6 15:13 IBM
drwxr-xr-x 4 0 CICS 8192 Jan 6 15:13 LF
drwxr-xr-x 4 0 CICS 8192 Jan 6 15:13 UI
drwxrwxrwx 3 0 CICS 8192 Jan 6 11:32 inst
DDDEF
CDPZ02.IBM.HHBO210.F2(HBO4DDDF) をコピーして編集し、Submit。
//HBO4DDDF JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)
//**************************************************************/
//* JOB NAME: HBO4DDDF */
//* */
//* LICENSED MATERIALS - PROPERTY OF IBM */
//* 5698-ABN */
//* COPYRIGHT IBM CORP 2019 ALL RIGHTS RESERVED. */
//* */
//* US GOVERNMENT USERS RESTRICTED RIGHTS - */
//* USE, DUPLICATION OR DISCLOSURE RESTRICTED */
//* BY GSA ADP SCHEDULE CONTRACT WITH IBM CORP. */
//* */
//* DESCRIPTION: THIS JCL WILL CREATE DDDEF ENTRIES AND */
//* CREATE AN ALLZONES REPORT FOR */
//* IBM Z COMMON DATA PROVIDER V2.1.0 */
//* */
//* CAUTION: THIS JOB REQUIRES UPDATES BEFORE SUBMITTING. */
//* */
//* NOTES: */
//* */
//* 1) IF YOU USED HBO0SMPE THE QUALIFIERS AND ZONE NAMES */
//* WILL BE AVAILABLE IN THAT JOB. */
//* */
//* 2) CHANGE THE JOB CARD TO MEET YOUR SYSTEM'S REQUIREMENTS. */
//* */
//* */
//* IT IS OK TO USE A CHANGE ALL COMMANDS TO SHORTEN */
//* THE WORK OF TASKS 3,4,5 and 6 */
//* */
//* SOMETHING LIKE: */
//* */
//* C CDPZ02.V2R1M0 my.tlib.qualifiers ALL */
//* */
//* and */
//* */
//* C CDPZ02.V2R1M0 my.dlib.qualifiers ALL */
//* */
//* 3) CHANGE CDPZ02 TO THE TARGET LIB HIGH-LEVEL QUALIFIER */
//* THAT COMPLIES WITH YOUR SITE'S NAMING STANDARDS. */
//* */
//* 4) CHANGE V2R1M0 TO THE TARGET LIB SECOND-LEVEL QUALIFIER */
//* THAT COMPLIES WITH YOUR SITE'S NAMING STANDARDS. */
//* */
//* 5) CHANGE CDPZ02 TO THE DISTRIBUTION LIB HIGH-LEVEL */
//* THAT COMPLIES WITH YOUR SITE'S NAMING STANDARDS. */
//* */
//* 6) CHANGE V2R1M0 TO THE DISTRIBUTION LIB SECOND-LEVEL */
//* THAT COMPLIES WITH YOUR SITE'S NAMING STANDARDS. */
//* */
//* 7) YOU MUST CHANGE CDPZ02 TO YOUR SMPE HLQ. THE */
//* SAFEST WAY TO DO THIS IS DOING A GLOBAL CHANGE */
//* ON THE COMMAND LINE: */
//* */
//* "C CDPZ02 MYPREFIX ALL" */
//* */
//* 8) CHANGE TZONE TO THE NAME OF YOUR TARGET ZONE. */
//* */
//* 9) CHANGE DZONE TO THE NAME OF YOUR DISTRIBUTION ZONE. */
//* */
//* 10) IF YOU REQUIRE THE VOLUME PARAMETER FOR TARGET LIBRARY */
//* DATA SETS THAT ARE NOT YET CATALOGED, UNCOMMENT THE */
//* VOLUME(ZSPK01) STATEMENTS AND CHANGE ZSPK01 TO */
//* THE VOLUME FOR THE TARGET LIBRARIES. */
//* */
//* 11) IF YOU REQUIRE THE VOLUME PARAMETER FOR DISTRIBUTION */
//* LIBRARY DATA SETS THAT ARE NOT YET CATALOGED, UNCOMMENT */
//* THE VOLUME(ZSPK01) STATEMENTS AND CHANGE ZSPK01 */
//* TO THE VOLUME FOR THE DISTRIBUTION LIBRARIES. */
//* */
//* IF YOU SPECIFY A VOLUME FOR ANY DATASET IN THIS JOB, YOU */
//* MUST ALSO SPECIFY THE SAME VOLUME IN THE CORRESPONDING */
//* DATASET ALLOCATION JOB, HBO1ALLO. */
//* */
//* 12) A STEP IS PROVIDED TO ALLOW YOU TO CHANGE THE HIGH */
//* LEVEL PATH USED TO INSTALL Z COMMON DATA PROVIDER. */
//* LEVEL PATH USED TO INSTALL Z COMMON DATA PROVIDER. */
//* TO ADD A HIGH LEVEL PATH CHANGE <PathPrefix> TO THE */
//* DESIRED PATH HIGH LEVEL. IF YOU WANT TO USE THE */
//* DEFAULT PATH JUST DELETE <PathPrefix>. */
//* DEFAULT PATH JUST DELETE <PathPrefix>. */
//* IF YOU USED A -PathPrefix- IN THE HBO2AZFS JOB THAT */
//* SAME PREFIX SHOULD BE USED HERE. */
//* */
//* NOTE: UNLKE THE HBO2AZFS JOB, HERE DO NOT INCLUDE */
//* THE LAST "/" IN YOUR PREFIX SO INSTEAD OF USING */
//* /my/path/prefix/ USE /my/path/prefix */
//* */
//* GENERAL NOTES: */
//* 1) THIS JOB SHOULD COMPLETE WITH A RETURN CODE 0. */
//* HOWEVER, IF SOME OR ALL OF THESE DDDEF ENTRIES ALREADY */
//* EXIST, THEN THE JOB WILL COMPLETE WITH A RETURN CODE 8. */
//* YOU WILL HAVE TO EXAMINE THE OUTPUT AND DETERMINE */
//* WHETHER OR NOT THE EXISTING ENTRIES SHOULD BE REPLACED. */
//* YOU CAN CHANGE THE 'ADD' TO 'REP' IN THIS JOB TO */
//* REPLACE EXISTING ENTRIES. */
//* */
//**************************************************************/
//*
//DDDEFD EXEC PGM=GIMSMP,REGION=0M
//SMPCSI DD DSN=CDPZ02.GLOBAL.CSI, /* <==(7) */
// DISP=SHR
//SMPCNTL DD *
SET BDY(DZONE). /* <==(9) */
UCLIN.
ADD DDDEF(AHBOCLST)
DATASET(CDPZ02.V2R1M0.AHBOCLST)
UNIT(SYSALLDA)
VOLUME(ZSPK01)
WAITFORDSN
SHR
.
ADD DDDEF(AHBODEFS)
DATASET(CDPZ02.V2R1M0.AHBODEFS)
UNIT(SYSALLDA)
VOLUME(ZSPK01)
WAITFORDSN
SHR
.
ADD DDDEF(AHBOHFS)
DATASET(CDPZ02.V2R1M0.AHBOHFS)
UNIT(SYSALLDA)
VOLUME(ZSPK01)
WAITFORDSN
SHR
.
ADD DDDEF(AHBOHFS2)
DATASET(CDPZ02.V2R1M0.AHBOHFS2)
UNIT(SYSALLDA)
VOLUME(ZSPK01)
WAITFORDSN
SHR
.
ADD DDDEF(AHBOINST)
DATASET(CDPZ02.V2R1M0.AHBOINST)
UNIT(SYSALLDA)
VOLUME(ZSPK01)
WAITFORDSN
SHR
.
ADD DDDEF(AHBOLINK)
DATASET(CDPZ02.V2R1M0.AHBOLINK)
UNIT(SYSALLDA)
VOLUME(ZSPK01)
WAITFORDSN
SHR
.
ADD DDDEF(AHBOLOAD)
DATASET(CDPZ02.V2R1M0.AHBOLOAD)
UNIT(SYSALLDA)
VOLUME(ZSPK01)
WAITFORDSN
SHR
.
ADD DDDEF(AHBOSAMP)
DATASET(CDPZ02.V2R1M0.AHBOSAMP)
UNIT(SYSALLDA)
VOLUME(ZSPK01)
WAITFORDSN
SHR
.
ENDUCL.
//DDDEFT EXEC PGM=GIMSMP,REGION=0M
//SMPCSI DD DSN=CDPZ02.GLOBAL.CSI, /* <==(7) */
ADD DDDEF(AHBOCLST)
DATASET(CDPZ02.V2R1M0.AHBOCLST)
SET BDY(TZONE). /* <==(8) */
VOLUME(ZSPK01)
WAITFORDSN
SHR
.
ADD DDDEF(AHBODEFS)
DATASET(CDPZ02.V2R1M0.AHBODEFS)
UNIT(SYSALLDA)
VOLUME(ZSPK01)
WAITFORDSN
SHR
.
ADD DDDEF(AHBOHFS)
DATASET(CDPZ02.V2R1M0.AHBOHFS)
UNIT(SYSALLDA)
VOLUME(ZSPK01)
WAITFORDSN
SHR
.
ADD DDDEF(AHBOHFS2)
DATASET(CDPZ02.V2R1M0.AHBOHFS2)
UNIT(SYSALLDA)
VOLUME(ZSPK01)
WAITFORDSN
SHR
.
ADD DDDEF(AHBOINST)
DATASET(CDPZ02.V2R1M0.AHBOINST)
UNIT(SYSALLDA)
VOLUME(ZSPK01)
WAITFORDSN
SHR
UNIT(SYSALLDA)
VOLUME(ZSPK01)
WAITFORDSN
SHR
VOLUME(ZSPK01)
WAITFORDSN
SHR
.
ADD DDDEF(AHBOLOAD)
DATASET(CDPZ02.V2R1M0.AHBOLOAD)
UNIT(SYSALLDA)
VOLUME(ZSPK01)
WAITFORDSN
SHR
.
ADD DDDEF(AHBOSAMP)
DATASET(CDPZ02.V2R1M0.AHBOSAMP)
UNIT(SYSALLDA)
VOLUME(ZSPK01)
WAITFORDSN
SHR
.
ADD DDDEF(SHBOCLST)
DATASET(CDPZ02.V2R1M0.SHBOCLST)
UNIT(SYSALLDA)
VOLUME(ZSPK01)
ADD DDDEF(SHBOCLST)
DATASET(CDPZ02.V2R1M0.SHBOCLST)
UNIT(SYSALLDA)
VOLUME(ZSPK01)
WAITFORDSN
SHR
.
ADD DDDEF(SHBODEFS)
DATASET(CDPZ02.V2R1M0.SHBODEFS)
.
ADD DDDEF(SHBOINST)
DATASET(CDPZ02.V2R1M0.SHBOINST)
UNIT(SYSALLDA)
.
ADD DDDEF(SHBOINST)
DATASET(CDPZ02.V2R1M0.SHBOINST)
UNIT(SYSALLDA)
VOLUME(ZSPK01)
WAITFORDSN
SHR
.
ADD DDDEF(SHBOLOAD)
DATASET(CDPZ02.V2R1M0.SHBOLOAD)
UNIT(SYSALLDA)
VOLUME(ZSPK01)
WAITFORDSN
SHR
.
ADD DDDEF(SHBOLLST)
DATASET(CDPZ02.V2R1M0.SHBOLLST)
UNIT(SYSALLDA)
VOLUME(ZSPK01)
WAITFORDSN
SHR
.
ADD DDDEF(SHBOLPA)
DATASET(CDPZ02.V2R1M0.SHBOLPA)
UNIT(SYSALLDA)
VOLUME(ZSPK01)
WAITFORDSN
SHR
.
ADD DDDEF(SHBOSAMP)
DATASET(CDPZ02.V2R1M0.SHBOSAMP)
UNIT(SYSALLDA)
VOLUME(ZSPK01)
WAITFORDSN
SHR
.
/* DO NOT UPPER CASE ANY OF THE PATH VALUES SPECIFIED BELOW */
ADD DDDEF(SHBOFS00)
PATH('/usr/lpp/IBM/zcdp/v2r1m0/IBM/').
ADD DDDEF(SHBOFS01)
PATH('/usr/lpp/IBM/zcdp/v2r1m0/LF/samples/IBM/').
ADD DDDEF(SHBOFS02)
PATH('/usr/lpp/IBM/zcdp/v2r1m0/LF/lib/IBM/').
ADD DDDEF(SHBOFS03)
PATH('/usr/lpp/IBM/zcdp/v2r1m0/LF/lib/jni64/IBM/').
ENDUCL.
/*
//*
//DDDEFP EXEC PGM=GIMSMP,REGION=0M
//SMPCSI DD DSN=CDPZ02.GLOBAL.CSI, /* <==(7) */
// DISP=SHR
//SMPCNTL DD *
SET BDY(TZONE) /* <==(8) */
.
ZONEEDIT DDDEF.
CHANGE PATH('/usr/lpp/IBM/zcdp/v2r1m0'*,
'/usr/lpp/IBM/zcdp/v2r1m0'*). /* <==(12) */
ENDZONEEDIT.
/*
//REPORT EXEC PGM=GIMSMP,REGION=0M,COND=(8,LT)
//SMPCSI DD DSN=CDPZ02.GLOBAL.CSI, /* <==(7) */
// DISP=SHR
//SMPCNTL DD *
SET BDY(GLOBAL).
LIST ALLZONES.
/*
//
RECEIVE
CDPZ02.RIMLIB(RCVPDO) をコピーして編集し、Submit。
※WorkのVOLUMEがパンクして以下のようなエラーが発生してしまったので、明示的に特定のVOLUMEを使用するよう、SYSUTxのDDを追加しました。 IEC030I B37-04,IFG0554A,RCVPDO,SMPER1,SYSUT4,5226,ZR21W2,SYS20006.T182105.RA000.RCVPDO.R0112225//RCVPDO JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),
// USER=IBMUSER, /*RACF*/
// PASSWORD=xxxxx /*RACF*/
//* /*JCTRL*/
//*
//* 5751-CS3 COPYRIGHT IBM CORPORATION 1985, 2006
//*
//*
//********************************************************************
//* DO NOT TURN CAPS ON. THIS JOB CONTAINS CASE
//* SENSITIVE CONTROL CARDS.
//********************************************************************
//*
//* LIB: USERID.PDO.RIMLIB(RCVPDO)
//* GDE: CBPDO MEMO EXTENSION
//* DOC: THIS JOB WILL RECEIVE PRODUCTS, SERVICE, AND HOLDDATA
//* FROM THE SMP/E NETWORK TEMPORARY STORE (SMPNTS).
//*
//* CHANGE THE JOB STATEMENT AS REQUIRED TO MATCH
//* YOUR INSTALLATION'S REQUIREMENTS.
//*
//* SMP/E ZONE-RELATED FILES ARE ASSUMED TO BE DEFINED IN YOUR
//* GLOBAL CSI. SEE THE SMP/E COMMANDS MANUAL FOR A LIST OF
//* THE REQUIRED DDDEF ENTRIES.
//*
//*
//* NOTE 1: CHANGE THE SMPCSI DD STATEMENT TO THE SMP/E
//* GLOBAL CSI INTO WHICH YOU WANT TO RECEIVE THE
//* PACKAGE.
//*
//* NOTE 2: CHANGE THE SMPNTS DD STATEMENT TO POINT TO THE
//* PATH NAME IN YOUR FILE SYSTEM WHERE THE NETWORK
//* RECEIVED PACKAGE(S) ARE BEING STORED. THIS IS
//* THE PACKAGE DIRECTORY.
//*
//* NOTE 3: VERIFY/UPDATE THE PACKAGE-ID VALUE ON THE RECEIVE
//* FROMNTS COMMAND. THE PACKAGE-ID VALUE IS THE
//* IDENTIFIER (SUBDIRECTORY) FOR THIS PARTICULAR
//* PACKAGE IN THE PACKAGE DIRECTORY - SMPNTS.
//*
//* NOTE 4: UNCOMMENT THE DELETEPKG OPERAND ON THE RECEIVE
//* COMMAND IF YOU WANT TO DELETE THE PACKAGE AND
//* PACKAGE SUBDIRECTORY FROM YOUR FILE SYSTEM AFTER
//* THE RECEIVE COMMAND COMPLETES.
//*
//SMPER1 EXEC PGM=GIMSMP,REGION=0M,
// PARM='PROCESS=WAIT',
// DYNAMNBR=120
//SMPCSI DD DISP=SHR,DSN=CDPZ02.GLOBAL.CSI <=== NOTE 1
//SMPNTS DD PATHDISP=KEEP,
// PATH='/usr/lpp/IBM/zcdp/v2r1m0/inst/'
//SMPOUT DD SYSOUT=*
//SMPRPT DD SYSOUT=*
//SMPLIST DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD UNIT=3390,VOL=SER=ZSPK01,SPACE=(CYL,(10,1)),
// DISP=(,DELETE)
//SYSUT2 DD UNIT=3390,VOL=SER=ZSPK01,SPACE=(CYL,(10,1)),
// DISP=(,DELETE)
//SYSUT3 DD UNIT=3390,VOL=SER=ZSPK01,SPACE=(CYL,(10,1)),
// DISP=(,DELETE)
//SYSUT4 DD UNIT=3390,VOL=SER=ZSPK01,SPACE=(CYL,(100,100)),
// DISP=(,DELETE)
//**************************************************************
//* AS SHIPPED BY IBM, RCVPDO IS SET UP TO RECEIVE
//* THE FMIDS, PTFS AND HOLDDATA
//**************************************************************
//SMPCNTL DD *
SET BOUNDARY (GLOBAL) .
RECEIVE
FROMNTS(STP54802) /* <=== NOTE 3 */
/* DELETEPKG /* <=== NOTE 4 */
.
/*
APPLY
CDPZ02.IBM.HHBO210.F2(HBO6APLY) をコピーして編集し、Submit。
//HBO6APLY JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),
// USER=IBMUSER,PASSWORD=xxxxxx
//*
//SMP EXEC PGM=GIMSMP,PARM='DATE=U',REGION=0M
//SMPCSI DD DSN=CDPZ02.GLOBAL.CSI,DISP=SHR /* <==(2) */
//SMPHOLD DD DUMMY
//SMPCNTL DD *
SET BDY(TZONE). /* <==(3) SET TARGET ZONE */
APPLY
SELECT(
HHBO210
)
CHECK /* <==(4) COMMMENT TO APPLY */
.
/*
//
OKだったら、CHECKを外して実際のAPPLYを実行!
必要に応じてACCEPT実行。
PTF APPLY
PTFをAPPLYするの忘れてたので、後からAPPLYしました。こちらもワークのボリュームが足りなかったりしたので、SMPWRKxなどを適宜追加してAPPLY
//HBO6APLY JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),
// USER=IBMUSER,PASSWORD=xxxxx
//SMP EXEC PGM=GIMSMP,PARM='DATE=U',REGION=0M
//SMPCSI DD DSN=CDPZ02.GLOBAL.CSI,DISP=SHR /* <==(2) */
//SMPHOLD DD DUMMY
//SMPWRK1 DD UNIT=3390,SPACE=(CYL,(2,1,5)),DISP=(,DELETE),
// DCB=BLKSIZE=6160,VOL=SER=ZSPK01
//SMPWRK2 DD UNIT=3390,SPACE=(CYL,(2,1,5)),DISP=(,DELETE),
// DCB=BLKSIZE=6160,VOL=SER=ZSPK01
//SMPWRK3 DD DSN=CDPZ02.TEMP3.SMPWRK3,
// UNIT=3390,SPACE=(CYL,(100,10,100)),DISP=(,CATLG),
// DCB=BLKSIZE=3120
//SMPWRK4 DD UNIT=SYSDA,SPACE=(CYL,(2,1,5)),DISP=(,DELETE),
// DCB=BLKSIZE=3120,VOL=SER=ZSPK01
//SMPWRK6 DD UNIT=SYSDA,SPACE=(CYL,(100,1,100)),DISP=(,DELETE),
// DCB=BLKSIZE=6160,VOL=SER=ZSPK01
//SYSUT1 DD UNIT=3390,VOL=SER=ZSPK01,SPACE=(CYL,(10,1)),
// DISP=(,DELETE)
//SYSUT2 DD UNIT=3390,VOL=SER=ZSPK01,SPACE=(CYL,(10,1)),
// DISP=(,DELETE)
//SYSUT3 DD UNIT=3390,VOL=SER=ZSPK01,SPACE=(CYL,(10,1)),
// DISP=(,DELETE)
//SYSUT4 DD UNIT=3390,VOL=SER=ZSPK01,SPACE=(CYL,(100,100)),
// DISP=(,DELETE)
//SMPCNTL DD *
SET BDY(TZONE). /* <==(3) SET TARGET ZONE */
APPLY
BYPASS(HOLDSYS)
SELECT(
UJ01103
UJ01319
UJ01485
)
CHECK /* <==(4) COMMMENT TO APPLY */
.
/*
//
PTF提供後は、Config Toolのインストールし直し。
CDPzのセットアップ
導入が済んだら各コンポーネントの初期セットアップをしていきます。
(1) Configuration Tool
参考: Getting started with the Configuration Tool on z/OSMF
WebのUIを持つ構成ツールが提供されていて、z/OSMFに組み込んで利用できるようです。まずはこのツールを使うための構成を行います。
ユーザー作成
構成用のユーザーを作成します。
UID=0でユーザー"CDP201"を作成します。
//ADDUSER JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)
//****************************************************************
//STEP1 EXEC PGM=IKJEFT01,DYNAMNBR=20,REGION=0M
//SYSTSPRT DD SYSOUT=*
//SYSUADS DD DSN=SYS1.UADS,DISP=SHR
//SYSTSIN DD *
ADDUSER (CDP201) OWNER(SYS1) DFLTGRP(SYS1) SPECIAL OPERATIONS -
PASSWORD(PSWD) NAME (CDP201) -
TSO(ACCTNUM(ACCT#) MSGCLASS(H) PROC(IKJACCNT) SIZE(6072) -
MAXSIZE(2096128) UNIT(SYSALLDA) USERDATA(0000) ) -
OMVS(UID(0) HOME(/u/CDP201) PROGRAM(/bin/sh))
/*
//STEP2 EXEC PGM=IKJEFT01
//SYSPRINT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
PERMIT ACCT# ACCESS(READ) CLASS(ACCTNUM) ID(CDP201)
PERMIT IKJACCNT ACCESS(READ) CLASS(TSOPROC) ID(CDP201)
PERMIT ACCT ACCESS(READ) CLASS(TSOAUTH) ID(CDP201)
PERMIT JCL ACCESS(READ) CLASS(TSOAUTH) ID(CDP201)
PERMIT MOUNT ACCESS(READ) CLASS(TSOAUTH) ID(CDP201)
PERMIT OPER ACCESS(READ) CLASS(TSOAUTH) ID(CDP201)
PERMIT RECOVER ACCESS(READ) CLASS(TSOAUTH) ID(CDP201)
SETROPTS RACLIST(ACCTNUM) REFRESH
SETROPTS RACLIST(TSOPROC) REFRESH
SETROPTS RACLIST(TSOAUTH) REFRESH
/*
//STEP3 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEF ALIAS(NAME(CDP201) REL(CATALOG.ZPLEX.USERS) )-
CATALOG(CATALOG.Z23.MASTER)
/*
//
ホームディレクトリを作成します。
[CICS004@EPLEX1:/u] pwd
/u
[CICS004@EPLEX1:/u] mkdir CDP201
TSOでログインできることを確認。
z/OSMFの管理グループ(IZUADMIN)権限付与します(TSOコマンドCONNECT CDP201 GROUP(IZUADMIN)
)。
z/OSMFのWebUIからCDP201ユーザーでログインできることを確認。
作業ディレクトリの設定
参考: Setting up a working directory for the Configuration Tool
ここで、savingpolicy.shを流すように記載されているので、それに従って実行。
[CDP201@EPLEX1:/u/CDP201] sh /usr/lpp/IBM/zcdp/v2r1m0/UI/LIB/savingpolicy.sh
If you are deploying the Configuration tool on z/OSMF, please input '1'.
If you are deploying the Configuration tool directly in Liberty server, please input '2'.
1
You may enter a blank value to accept the default values in parentheses.
The Configuration Tool will be deployed in z/OSMF
Before running this script, ensure you are in the z/OSMF Administrator
group (IZUADMIN by default for z/OSMF).
The Configuration Tool requires a workspace where it can output
completed policy files. Please enter the full path of the directory you
would like to create.
Policy file directory (default: /u/error for uid: 0/cdpConfig): /u/CDP201/cdpConfig
User ID to own the policy file directory (default: Error for uid: 0): CDP201
Group containing administrators (default: IZUADMIN):
*** Important: the default value for the next parameter represents absolute
directory. If the default directory will become invalid after the next IPL,
provide a directory path that does not change between IPLs. Otherwise accept
the default value.
The Configuration Tool Source Script Directory (default: /V1R11/usr/lpp/IBM/zcdp/v2r1m0/UI/LIB):
The Configuration Tool has been successfully implemented.
You may now import the following file in the z/OSMF Import Manager:
/u/CDP201/cdpConfig/HBOCDEUI/v2r1m0/LIB/cdpConfig.properties
上のスクリプト実行の中で、Policy File Directoryとして/u/CDP201/cdpConfig
を指定していますので、そのディレクトリが作成されています。
[CDP201@EPLEX1:/u/CDP201] pwd
/u/CDP201
[CDP201@EPLEX1:/u/CDP201] ls
cdpConfig
/u/CDP201/cdpConfig/HBOCDEUI/v2r1m0/LIB/
には以下のようなファイルが作成されます。
[CDP201@EPLEX1:/u/CDP201/cdpConfig/HBOCDEUI/v2r1m0/LIB] ls -la
total 40
drwxrwx--- 2 0 IZUADMIN 8192 Jan 7 09:16 .
drwxrwx--- 4 0 IZUADMIN 8192 Jan 7 09:15 ..
lrwxrwxrwx 1 0 STC 53 Jan 7 09:16 CDPUIServer.war -> /V1R11/usr/lpp/IBM/zcdp/v2r1m0/UI/LIB/CDPUIServer.war
lrwxrwxrwx 1 0 STC 67 Jan 7 09:16 cdp-starter-sets.streams.json -> /V1R11/usr/lpp/IBM/zcdp/v2r1m0/UI/LIB/cdp-starter-sets.streams.json
lrwxrwxrwx 1 0 STC 56 Jan 7 09:16 cdp.protocols.json -> /V1R11/usr/lpp/IBM/zcdp/v2r1m0/UI/LIB/cdp.protocols.json
lrwxrwxrwx 1 0 STC 57 Jan 7 09:16 cdp.transforms.json -> /V1R11/usr/lpp/IBM/zcdp/v2r1m0/UI/LIB/cdp.transforms.json
-rw-rw---- 1 0 IZUADMIN 91 Jan 7 09:16 cdpConfig.json
lrwxrwxrwx 1 0 STC 58 Jan 7 09:16 cdpConfig.properties -> /V1R11/usr/lpp/IBM/zcdp/v2r1m0/UI/LIB/cdpConfig.properties
lrwxrwxrwx 1 0 STC 65 Jan 7 09:16 cdpConfig.remove.properties -> /V1R11/usr/lpp/IBM/zcdp/v2r1m0/UI/LIB/cdpConfig.remove.properties
lrwxrwxrwx 1 0 STC 58 Jan 7 09:16 cdpConfigVersion.txt -> /V1R11/usr/lpp/IBM/zcdp/v2r1m0/UI/LIB/cdpConfigVersion.txt
lrwxrwxrwx 1 0 STC 54 Jan 7 09:16 cdpui.properties -> /V1R11/usr/lpp/IBM/zcdp/v2r1m0/UI/LIB/cdpui.properties
lrwxrwxrwx 1 0 STC 49 Jan 7 09:16 defracf.cmd -> /V1R11/usr/lpp/IBM/zcdp/v2r1m0/UI/LIB/defracf.cmd
lrwxrwxrwx 1 0 STC 50 Jan 7 09:16 en.i18n.json -> /V1R11/usr/lpp/IBM/zcdp/v2r1m0/UI/LIB/en.i18n.json
lrwxrwxrwx 1 0 STC 54 Jan 7 09:16 ims.streams.json -> /V1R11/usr/lpp/IBM/zcdp/v2r1m0/UI/LIB/ims.streams.json
lrwxrwxrwx 1 0 STC 48 Jan 7 09:16 index.html -> /V1R11/usr/lpp/IBM/zcdp/v2r1m0/UI/LIB/index.html
lrwxrwxrwx 1 0 STC 64 Jan 7 09:16 log-forwarder.streams.json -> /V1R11/usr/lpp/IBM/zcdp/v2r1m0/UI/LIB/log-forwarder.streams.json
lrwxrwxrwx 1 0 STC 52 Jan 7 09:16 main.bundle.js -> /V1R11/usr/lpp/IBM/zcdp/v2r1m0/UI/LIB/main.bundle.js
lrwxrwxrwx 1 0 STC 57 Jan 7 09:16 polyfills.bundle.js -> /V1R11/usr/lpp/IBM/zcdp/v2r1m0/UI/LIB/polyfills.bundle.js
lrwxrwxrwx 1 0 STC 54 Jan 7 09:16 sde.streams.json -> /V1R11/usr/lpp/IBM/zcdp/v2r1m0/UI/LIB/sde.streams.json
lrwxrwxrwx 1 0 STC 48 Jan 7 09:16 server.xml -> /V1R11/usr/lpp/IBM/zcdp/v2r1m0/UI/LIB/server.xml
lrwxrwxrwx 1 0 STC 54 Jan 7 09:16 vendor.bundle.js -> /V1R11/usr/lpp/IBM/zcdp/v2r1m0/UI/LIB/vendor.bundle.js
importType=plugin
izu.externalapp.file.version=v2r1m0
izu.externalapp.local.context.root=cdp
izu.externalapp.code.root=.
pluginId=com.ibm.zos.cdp
pluginDefaultName=IBM Z Common Data Provider
pluginDescription=Configuration tool for IBM Z Common Data Provider
aboutPanelPath=cdpConfigVersion.txt
taskId1=CONFIGURE
taskVersion1=1.0
taskCategoryId1=4
taskDispName1=IBM Z Common Data Provider
taskDispDesc1=Interface for configuring IBM Z Common Data Provider
taskSAFResourceName1=ZOSMF.IBM_CDP.CONFIG.CDPConfiguration
taskMultiSysplexScope1=false
taskHandlerEligible1=false
taskAuthenticatedGuestEligible1=true
taskNavigationURL1=/index.html
taskBundleUrl1=/
taskBundleFileName1=/main.bundle.js
taskMinZOS1=03.23.00
taskMinZOSMF1=03.23.00
Installing the Configuration Tool
参考: Installing the Configuration Tool
ブラウザから、上で作成したCDP201ユーザーでz/OSMFにログインし、z/OSMF管理 - インポート・マネージャーを選択
プロパティーファイルとして、上で作成した/u/CDP201/cdpConfig/HBOCDEUI/v2r1m0/LIB/cdpConfig.propertiesを指定して「表示」
z/OSMFの画面をリフレッシュすると、左側のメニューの"構成"以下に"IBM Z Common Data Provider"という項目が追加されます。
※CDPz V1.1をインストール済の環境で、V2.1のプラグインを入れたら、V1.1で作られていたメニューが消えて、上の"IBM Z Common Data Provider"に置き換わってしまったので、複数バージョンの共存はできなさそうです。
以下のTSOコマンド実行(V1.1導入時に実施済み)
[CICS004@EPLEX1:/] tsocmd "RDEFINE ZMFAPLA IZUDFLT.ZOSMF.IBM_CDP.CONFIG.CDPConfiguration UACC(NONE)"
RDEFINE ZMFAPLA IZUDFLT.ZOSMF.IBM_CDP.CONFIG.CDPConfiguration UACC(NONE)
ICH10006I RACLISTED PROFILES FOR ZMFAPLA WILL NOT REFLECT THE ADDITION(S) UNTIL A SETROPTS REFRESH IS ISSUED.
[CICS004@EPLEX1:/] tsocmd "SETROPTS REFRESH RACLIST(ZMFAPLA)"
SETROPTS REFRESH RACLIST(ZMFAPLA)
[CICS004@EPLEX1:/] tsocmd "PERMIT IZUDFLT.ZOSMF.IBM_CDP.CONFIG.CDPConfiguration CLASS(ZMFAPLA) ID(IZUADMIN) ACCESS(CONTROL)"
PERMIT IZUDFLT.ZOSMF.IBM_CDP.CONFIG.CDPConfiguration CLASS(ZMFAPLA) ID(IZUADMIN) ACCESS(CONTROL)
ICH06011I RACLISTED PROFILES FOR ZMFAPLA WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED
[CICS004@EPLEX1:/] tsocmd "PERMIT IZUDFLT.ZOSMF.IBM_CDP.CONFIG.CDPConfiguration CLASS(ZMFAPLA) ID(IZUUSER) ACCESS(READ)"
PERMIT IZUDFLT.ZOSMF.IBM_CDP.CONFIG.CDPConfiguration CLASS(ZMFAPLA) ID(IZUUSER) ACCESS(READ)
ICH06011I RACLISTED PROFILES FOR ZMFAPLA WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED
[CICS004@EPLEX1:/] tsocmd "SETROPTS REFRESH RACLIST(ZMFAPLA)"
SETROPTS REFRESH RACLIST(ZMFAPLA)
以下のTechNoteにあるCEA.CEA... というプロファイルが無かったので定義を追加し、IZUADMIN, IZUUSERグループにUPDATE権限を付与。追加で、エラーが出ていたCEA.CEATSO.TSOREQUESTプロファイルにも同様にUPDATE権限付与。(V1.1導入時に実施済み)
https://www.ibm.com/support/pages/receive-hbo6501w-error-web-browser-when-attempting-open-cdp-zosmf-configuration
RDEFINE SERVAUTH CEA.CEADOCMD UACC(NONE)
PERMIT CEA.CEADOCMD CLASS(SERVAUTH) ID(IZUADMIN) ACCESS(UPDATE)
PERMIT CEA.CEADOCMD CLASS(SERVAUTH) ID(IZUUSER) ACCESS(UPDATE)
...
SETROPTS REFRESH RACLIST(SERVAUTH)
z/OSMFのメニューから"構成"-"IBM Z Common Data Provider"を選択して、以下の管理画面が表示されることを確認。
これで構成ツールが使えそうなところまで確認できました。
(2) Data Streamer
参考: Configuring the Data Streamer
CDPZ02.V2R1M0.SHBOSAMP(HBODSPRO)に提供されるプロシージャーのサンプルを自環境の適当なPROCLIBにコピーして編集。
//HBODSPRO PROC
//*
//ZLOGOUT EXEC PGM=BPXBATSL,REGION=0M,TIME=NOLIMIT
//*
//* Output and error data sets
//*
//STDOUT DD SYSOUT=*
//STDERR DD SYSOUT=*
//*
//* Parameter data
//*
//STDPARM DD *
PGM /bin/sh
/usr/lpp/IBM/zcdp/v2r1m0/DS/LIB/startup.sh
/etc/cdpConfig/myPolicy.policy
50401 start=w trace=n
//*
//* Environment data
//*
//STDENV DD *
JAVA_HOME=/usr/lpp/java/J8.0_64
CDP_HOME=/usr/lpp/IBM/zcdp/v2r1m0/cdp_work
TZ=JST-9
#DEFAULT_HEAP=4g
#MAXIMUM_HEAP=4g
#RESOLVER_CONFIG=//'USER.TCPIP(TCPDATA)'
#_BPXK_SETIBMOPT_TRANSPORT=TCPIPOE
//*
// PEND
//*********************************************************************
Data StreamerがListenするポートは50401とする。
また、CDP_HOMEとして /usr/lpp/IBM/zcdp/v2r1m0/cdp_work
を指定したので、それに合わせてUSS上にこのディレクトリを作成しておく。
Sample.policyは後でポリシー作成後に置き換えるので、一旦はこのまま。
TZ=JST-9に変更
Data StreamerをSTARTED TASKとして実行する際のユーザーとしてCDP201を指定しておく。
[CICS004@EPLEX1:/] tsocmd "RDEFINE STARTED HBODSPRO.* STDATA(USER(CDP201))"
RDEFINE STARTED HBODSPRO.* STDATA(USER(CDP201))
ICH10006I RACLISTED PROFILES FOR STARTED WILL NOT REFLECT THE ADDITION(S) UNTIL A SETROPTS REFRESH IS ISSUED.
[CICS004@EPLEX1:/] tsocmd "SETROPTS REFRESH GENERIC(STARTED) RACLIST(STARTED)"
SETROPTS REFRESH GENERIC(STARTED) RACLIST(STARTED)
(3) Log Forwarder
参考: Configuring the Log Forwarder
OPERLOG設定有無によってセットアップ手順が異なります。ここでは、OPERLOG設定なしの想定とします。
ガイドにあるポリシーの作成(Configuration Toolの利用)は後回しにします。
CDPZ02.V2R1M0.SHBOSAMP(HBOPROC)に提供されるプロシージャーのサンプルを自環境の適当なPROCLIBにコピーして編集。
//HBOPROC PROC OPT=''
//* The ENVDIR is defaulted to /usr/lpp/IBM/zscala/V3R1/samples in the
//* startup.sh script.
//*
//* Set HBOBASE to the directory where the startup.sh script resides.
//* The default directory for startup.sh is listed below.
// SET HBOBASE='/usr/lpp/IBM/zcdp/v2r1m0/LF/samples'
//*
//* Uncomment and set ENVDIR to the directory where the zlf.conf
//* environment file resides (do not remove the -e at the beginning of
//* the variable). If not uncommented, startup.sh will use the default
//* directory value, listed below.
//* SET ENVDIR='-e /usr/lpp/IBM/zscala/V3R1/samples'
// SET ENVDIR='-e /u/CDP201/cdpConfig'
//*
//***** HBOPROC PROC *************************************************
//*
//ZLOGOUT EXEC PGM=BPXBATSL,REGION=0M,TIME=NOLIMIT,
// PARM=('PGM /bin/sh &HBOBASE./startup.sh &OPT &ENVDIR')
//* Output data sets
//STDOUT DD SYSOUT=*
//STDERR DD SYSOUT=*
//*
// PEND
//*********************************************************************
ENVDIRとして、/u/CDP201/cdpConfigを指定(ポリシーファイルがここに作成される想定)。
HBOBASEは、startup.shのディレクトリを指定してますが、V2.1インストールディレクトリパスに変更。
HBOBASE='/usr/lpp/IBM/zcdp/v2r1m0/LF/samples'
Log ForwarderをSTARTED TASKとして実行する際のユーザーとしてCDP201を指定しておく。さらに、マニュアル記述の通り、FACILITYクラスの BPX.CONSOLEプロファイルにREAD権限付与する。
[CICS004@EPLEX1:/] tsocmd "RDEFINE STARTED HBOPROC.* STDATA(USER(CDP201))"
RDEFINE STARTED HBOPROC.* STDATA(USER(CDP201))
ICH10006I RACLISTED PROFILES FOR STARTED WILL NOT REFLECT THE ADDITION(S) UNTIL A SETROPTS REFRESH IS ISSUED.
[CICS004@EPLEX1:/] tsocmd "SETROPTS REFRESH GENERIC(STARTED) RACLIST(STARTED)"
SETROPTS REFRESH GENERIC(STARTED) RACLIST(STARTED)
[CICS004@EPLEX1:/] tsocmd "PERMIT BPX.CONSOLE CLASS(FACILITY) ID(CDP201) ACCESS(READ)"
PERMIT BPX.CONSOLE CLASS(FACILITY) ID(CDP201) ACCESS(READ)
ICH06011I RACLISTED PROFILES FOR FACILITY WILL NOT REFLECT THE UPDATE(S) UNTIL A SETROPTS REFRESH IS ISSUED
[CICS004@EPLEX1:/] tsocmd "SETROPTS REFRESH RACLIST(FACILITY)"
SETROPTS REFRESH RACLIST(FACILITY)
SYSLOGデータ取得用User Exitを追加します。
OPERLOGなし、JES3利用なし、の環境なのでHBOSYSGというユーザーExitを追加します。
LPALSTxxにSHBOLPAを登録し、PROGxxにてEXITを登録する。以下IPL時に有効化される静的定義の例。
...
CDPZ02.V2R1M0.SHBOLPA(ZSPK01),
...
...
EXIT ADD EXITNAME(CNZ_MSGTOSYSLOG) MODNAME(HBOSYSG)
...
必要に応じて動的設定もしくはIPL実施。
(4) System Data Engine
参考: Configuring the System Data Engine
SMFを取り込む際に、対象とするデータソースの形式によりセットアップ方法が異なります。ここでは、LogstreamではなくSYS1.MANxデータセットを取り込む想定とします。
ガイドにあるポリシーの作成(Configuration Toolの利用)は後回しにします。
PROGxxにAPF登録をします。
...
APF ADD
DSNAME(CDPZ02.V2R1M0.SHBOLOAD) VOLUME(ZSPK01)
APF ADD
DSNAME(CDPZ02.V2R1M0.SHBOLLST) VOLUME(ZSPK01)
...
CDPZ02.V2R1M0.SHBOSAMP(HBOSMF)に提供されるプロシージャーのサンプルを自環境の適当なPROCLIBにコピーして編集。
//HBOSMFCL EXEC PGM=HBOPDE,REGION=0M,TIME=1440,
// PARM='SHOWINPUT=NO,ZIIPOFFLOAD=NO'
//STEPLIB DD DISP=SHR,DSN=CDPZ02.V2R1M0.SHBOLOAD
//*
//* CONTROL STATEMENTS
//* The control statement file must be customised to match
//* the target of the Common Data Provider configuration utility.
//*
//HBOIN DD *
SET IBM_SDE_INTERVAL = '1 MINUTES';
SET IBM_UPDATE_TARGET = 'PORT 50401';
SET IBM_FILE_FORMAT = 'CSV';
SET IBM_RESOURCE = 'EXIT';
// DD PATH='/etc/cdpConfig/hboin.sde',
// PATHDISP=(KEEP),RECFM=V,LRECL=255,FILEDATA=RECORD
//*
//* Sample COLLECT statement for processing real-time SMF data
//*
// DD *
COLLECT SMF FROM &IBM_RESOURCE
EVERY &IBM_SDE_INTERVAL;
/*
//HBOOUT DD SYSOUT=*
//HBODUMP DD SYSOUT=*
//HBODEBUG DD SYSOUT=*
//STEPLIB DD DISP=SHR,DSN=CDPZ02.V2R1M0.SHBOLOAD
=> データセット名変更
SET IBM_UPDATE_TARGET = 'PORT 50401';
=> Data Streamerのポート番号指定
SET IBM_RESOURCE = 'EXIT';
=> MANxデータセットをEXITにて取得する想定なので、"EXIT"で固定
// DD PATH='/etc/cdpConfig/hboin.sde'
=> ポリシーファイル名は後で変更
System Data EngineをSTARTED TASKとして実行する際のユーザーとしてCDP201を指定しておく。
[CICS004@EPLEX1:/] tsocmd "RDEFINE STARTED HBOSMF.* STDATA(USER(CDP201))"
RDEFINE STARTED HBOSMF.* STDATA(USER(CDP201))
ICH10006I RACLISTED PROFILES FOR STARTED WILL NOT REFLECT THE ADDITION(S) UNTIL A SETROPTS REFRESH IS ISSUED.
[CICS004@EPLEX1:/] tsocmd "SETROPTS REFRESH GENERIC(STARTED) RACLIST(STARTED)"
SETROPTS REFRESH GENERIC(STARTED) RACLIST(STARTED)
LPALST登録
...
CDPZ02.V2R1M0.SHBOLPA(ZSPK01),
...
EXIT登録
SMFPRMxxのSUBSYS定義を確認
...
SUBSYS(STC,EXITS(IEFU29,IEFU83,IEFU84,IEFUJP,IEFUSO,IEFACTRT),
INTERVAL(SMF,SYNC))
...
SUBSYSで"STC"というのが定義されているので、EXITNAMEとして、SYSSTC.IEFUxxを定義する。
...
EXIT ADD EXITNAME(SYSSTC.IEFU83) MODNAME(HBOSMFEX)
EXIT ADD EXITNAME(SYSSTC.IEFU84) MODNAME(HBOSMFEX)
EXIT ADD EXITNAME(SYSSTC.IEFU85) MODNAME(HBOSMFEX)
...
必要に応じて動的設定もしくはIPL実施。
補足
各種コマンドの備忘録
APF動的登録
SETPROG APF,ADD,DSN=CDPZ02.V2R1M0.SHBOLOAD,VOLUME=ZSPK01
SETPROG APF,ADD,DSN=CDPZ02.V2R1M0.SHBOLLST,VOLUME=ZSPK01
APF確認
D PROG,APF
...
517 ZSPK01 CDPZ02.V2R1M0.SHBOLOAD
518 ZSPK01 CDPZ02.V2R1M0.SHBOLLST
...
EXIT動的削除
SETPROG EXIT,DELETE,EXITNAME=CNZ_MSGTOSYSLOG,MODNAME=GLASYSG
SETPROG EXIT,DELETE,EXITNAME=SYS.IEFU83,MODNAME=HBOSMFEX
SETPROG EXIT,DELETE,EXITNAME=SYS.IEFU84,MODNAME=HBOSMFEX
SETPROG EXIT,DELETE,EXITNAME=SYS.IEFU85,MODNAME=HBOSMFEX
LPA動的削除
SETPROG LPA,DELETE,MODNAME=HBOSMFEX,FORCE=YES
LPA動的登録
SETPROG LPA,ADD,MODNAME=HBOSMFEX,DSNAME=CDPZ02.V2R1M0.SHBOLPA
IEF196I IEF237I 5187 ALLOCATED TO SYS00496
IEF196I IEF285I CDPZ02.V2R1M0.SHBOLPA KEPT
IEF196I IEF285I VOL SER NOS= ZSPK01.
CSV551I 12.09.18 LPA ADD 383
SUCCESSFUL: 1 UNSUCCESSFUL: 0 NOT PROCESSED: 0
MODULE RESULT
HBOSMFEX SUCCESSFUL
※SHBOLPA以下の他のモジュールも同様に実施
LPA確認
D PROG,LPA,MOD=HBOSMFEX
CSV550I 12.11.13 LPA DISPLAY 385
FLAGS MODULE ENTRY PT LOAD PT LENGTH DIAG
D P HBOSMFEX 963290E8 16329000 00000ED0 038B7F10
EXIT動的追加
SETPROG EXIT,ADD,EXITNAME=CNZ_MSGTOSYSLOG,MODNAME=HBOSYSG
CSV420I MODULE HBOSYSG HAS BEEN ADDED TO EXIT CNZ_MSGTOSYSLOG
SETPROG EXIT,ADD,EXITNAME=SYSSTC.IEFU83,MODNAME=HBOSMFEX
CSV420I MODULE HBOSMFEX HAS BEEN ADDED TO EXIT SYSSTC.IEFU83
SETPROG EXIT,ADD,EXITNAME=SYSSTC.IEFU84,MODNAME=HBOSMFEX
CSV420I MODULE HBOSMFEX HAS BEEN ADDED TO EXIT SYSSTC.IEFU84
SETPROG EXIT,ADD,EXITNAME=SYSSTC.IEFU85,MODNAME=HBOSMFEX
CSV420I MODULE HBOSMFEX HAS BEEN ADDED TO EXIT SYSSTC.IEFU85
EXIT確認
D PROG,EXIT,MODNAME=HBOSYSG
CSV462I 12.35.34 PROG,EXIT DISPLAY 455
MODULE HBOSYSG
EXIT(S) CNZ_MSGTOSYSLOG
D PROG,EXIT,MODNAME=HBOSMFEX
CSV462I 15.50.39 PROG,EXIT DISPLAY 658
MODULE HBOSMFEX
EXIT(S) SYSSTC.IEFU85 SYSSTC.IEFU84 SYSSTC.IEFU83
カスタマイズ用Dataset作成
参考: Creating a System Data Engine data stream definition
CDPZ02.V2R1M0.HBODEFSに提供されているSystem Data Engine定義ファイルをカスタマイズした場合に、その配置先となるデータセットを作成しておきます。
ここでは、CDPZ02.CUSTOM.HBODEFSという名前で作成しておきます(サイズ等はCDPZ02.V2R1.M0.HBODEFSと同じ)。
Data Set Name . . . : CDPZ02.CUSTOM.SHBODEFS
General Data Current Allocation
Volume serial . . . : ZSPK01 Allocated tracks . : 300
Device type . . . . : 3390 Allocated extents . : 1
Organization . . . : PO Maximum dir. blocks : 30
Record format . . . : VB
Record length . . . : 255
Block size . . . . : 27998 Current Utilization
1st extent tracks . : 300 Used tracks . . . . : 1
Secondary tracks . : 25 Used extents . . . : 1
Used dir. blocks . : 1
Number of members . : 0
Dates
Creation date . . . : 2020/01/16
Referenced date . . : ***None***
Expiration date . . : ***None***
ELK側の準備
参考: Preparing to send data to Elasticsearch
CDPz V2.1のマニュアルでは、サポートされるELKスタックのバージョンの記述が無くなっている!
とりあえず手元にあるRHEL上のELK V7.xを使うことにします。
ELKのインストールは割愛します。(rpmパッケージをダウンロードしてそれぞれインストール)
参考:
fluentd/Elasticsearch/kibanaを試す: (1)インストール
Logstashメモ - (1)インストール/簡易操作
構成
最低限の構成
Elasticsearch
/etc/elasticsearch/elasticsearch.yml 編集
http.port: 9200
http.host: 0.0.0.0
Kibana
/etc/kibana/kibana.yml 編集
server.port: 5601
server.host: "0.0.0.0"
Logstash
参考: Preparing to send data to Elasticsearch
Elasticsearchに取り込むためのLogstash構成ファイルが、USS上の/usr/lpp/IBM/zcdp/v2r1m0/DS/LIB/ibm_cdpz_ELK.tar.gzに提供されています。
これをバイナリーモードでLinux側にコピーして展開します。取り込むデータ毎に各種Logstash構成ファイルが含まれています。
デフォルトのlogstash構成確認ておきます。
systemdのlogstash.serviceを見てみると...
[Unit]
Description=logstash
[Service]
Type=simple
User=logstash
Group=logstash
# Load env vars from /etc/default/ and /etc/sysconfig/ if they exist.
# Prefixing the path with '-' makes it try to load, but if the file doesn't
# exist, it continues onward.
EnvironmentFile=-/etc/default/logstash
EnvironmentFile=-/etc/sysconfig/logstash
ExecStart=/usr/share/logstash/bin/logstash "--path.settings" "/etc/logstash"
Restart=always
WorkingDirectory=/
Nice=19
LimitNOFILE=16384
[Install]
WantedBy=multi-user.target
--path.settings
として/etc/logstashディレクトリが指定されています。
Running Logstash from the Command Line
このディレクトリ下のlogstash.ymlが構成ファイルとして使われます。
...
# Where to fetch the pipeline configuration for the main pipeline
#
# path.config:
...
path.configはコメントアウト状態のままにしておきます。
同ディレクトリのpipelines.ymlを確認。
# This file is where you define your pipelines. You can define multiple.
# For more information on multiple pipelines, see the documentation:
# https://www.elastic.co/guide/en/logstash/current/multiple-pipelines.html
- pipeline.id: main
path.config: "/etc/logstash/conf.d/*.conf"
ここでは確認だけで、Logstashの構成は後回し...
firewalld
firewallを使用している場合、9200と5601ポートにアクセスできるよう穴をあける。
[root@Test08 /etc/firewalld/zones]# firewall-cmd --zone=public --add-port=9200/tcp --permanent
success
[root@Test08 /etc/firewalld/zones]# firewall-cmd --zone=public --add-port=5601/tcp --permanent
success
[root@Test08 /etc/firewalld/zones]# cat public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
<service name="ssh"/>
<service name="dhcpv6-client"/>
<port protocol="tcp" port="9200"/>
<port protocol="tcp" port="5601"/>
</zone>
[root@Test08 /etc/firewalld/zones]# firewall-cmd --reload
success
SSHポートフォワード
今回お試しで利用する環境は、z/OSのマシンと、ELKスタックを乗せるLinuxマシンが、別のネットワークセグメントにあり、z/OS側がよりセキュアなネットワークとなっています。そのため、z/OS側からLinuxマシンに対してTCPのコネクションを張ることが制限されています(Linuxからz/OSへのSSH接続は可)。これを回避するために、テストをする時だけ一時的にSSHポートフォワードの構成を行うことにします。
ポートフォワードを行うためにLinux上で発行するコマンド例
ssh -f -N -R 8081:localhost:8081 <user>@eplex1
公開鍵認証の設定をしておくか、上のコマンド実行時にパスワードを入力する必要があります。
これをテスト実行するときだけ有効にする想定です。
SSHやポートフォワードについては、以下の記事もご参照ください。
参考: マルチ・プラットフォームを扱うインフラ屋さんのための連携技術: SSH編
起動
[root@test08 ~]# systemctl start elasticsearch.service
[root@test08 ~]# systemctl status elasticsearch.service
● elasticsearch.service - Elasticsearch
Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: disabled)
Active: active (running) since 火 2020-01-07 13:22:20 JST; 1min 48s ago
Docs: http://www.elastic.co
Main PID: 7506 (java)
Tasks: 83
CGroup: /system.slice/elasticsearch.service
tq7506 /usr/share/elasticsearch/jdk/bin/java -Xms2g -Xmx2g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatin...
mq7672 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller
1月 07 13:22:20 test08 systemd[1]: Started Elasticsearch.
1月 07 13:22:20 test08 systemd[1]: Starting Elasticsearch...
1月 07 13:22:47 test08 elasticsearch[7506]: OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will...release.
Hint: Some lines were ellipsized, use -l to show in full.
[root@test08 ~]# systemctl start kibana.service
[root@test08 ~]# systemctl status kibana.service
● kibana.service - Kibana
Loaded: loaded (/etc/systemd/system/kibana.service; disabled; vendor preset: disabled)
Active: active (running) since 火 2020-01-07 13:24:26 JST; 15s ago
Main PID: 7999 (node)
Tasks: 21
CGroup: /system.slice/kibana.service
mq7999 /usr/share/kibana/bin/../node/bin/node --no-warnings --max-http-header-size=65536 /usr/share/kibana/bin/../src/cli -c /etc/kibana/kiba...
1月 07 13:24:26 test08 systemd[1]: Started Kibana.
1月 07 13:24:26 test08 systemd[1]: Starting Kibana...
Elasticsearchにアクセスしてみる
[root@test08 ~]# curl -X GET http://localhost:9200
{
"name" : "test08",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "cGII5hcKSQKyrQZnZ0JPZw",
"version" : {
"number" : "7.2.0",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "508c38a",
"build_date" : "2019-06-20T15:54:18.811730Z",
"build_snapshot" : false,
"lucene_version" : "8.0.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
とりあえず最低限の構成は出来上がりました。
データ取り込みのための構成(Overview)
さて、上の手順で基本的なセットアップは済んだので、ここから、実際にデータを取得するための構成をしていきます。
何のデータをどこに流し込むか、ということを色々カスタマイズできるようなのですが、バリエーションも豊富で仕組みも結構複雑なので、まず、ここでは全体像を押さえて、具体的なデータ取得は別の記事で取り上げることにします。連携先はタイトルにあるようにELKスタックを前提としていますが、一旦ここではELK側は置いておいて、CDPz側にフォーカスします。
ざっくり言うと、以下のステップを踏むことになります。
1.Config Toolで"ポリシー"と呼ばれる定義を作成します。"ポリシー"とは、何のデータをどのように取得して、それをどこにどうやって送るか、というような情報を保持するものです。
2.作成されたポリシーの情報を元にして、CDPzの各コンポーネントを稼働させます。
以降、以下の省略形を使う場合があります。
DS: Data Streamer
LF: Log Forwarder
SDE: System Data Engine
1.Config Toolによるポリシーの作成
z/OSMFのプラグインとして、CDPzの構成ツールをセットアップしましたので、まずはそれを使ってポリシーを作成します。
※製品が事前に用意しているメニューから取得したい情報を選択して定義を作成していきますが、全ての情報がメニューとして用意されている訳ではありません。用意されていない項目を取得したい場合、追加でカスタマイズが必要となりますが、ここでは一旦用意されているメニューを取得するイメージで記載します。
ポリシーエディター
Create New policyを選択すると、Policy Profile Editの画面となり、ここでGUIベースでポリシーを定義することができます。以下のようなイメージでポリシーを作成していきます。
左側に縦に並んでいる青い箱は、何のデータを取得したいか、ということを表しています(LFもしくはSDE関連の情報)。SYSLOGやSMF Type110 Subtype1のデータなど、取得したいデータを選んでいきます。
※これら取得するデータの情報は"Data Stream"と呼ばれていますが、"Data Streamer"とは別物ですのでご注意ください!(まったくネーミングが紛らわしい!!!)
製品が用意しているメニューとしては、以下のようなものがあります。
図1の右側にある緑色の箱は、データをどこにどうやって送るかという情報を設定するもので(DS関連の情報)、Subscriberと呼ばれています。
※ネーミングに一貫性が無くて分かりにくい!!!
DataStreamとSubscriberはそれぞれ関連付けされて、どのデータをどこに送るかというのを定義していくことになります。
ポリシー編集画面で定義をしていく流れを図にするとこんな感じです。
上の図中の(1)-1, (1)-2で示されているLog Forwarder用の設定、System Data Engine用の設定はそれぞれ以下の通り。
生成物
上のエディターでGUIベースでポリシーを作成して保存すると、定義内容が反映されたファイルがUSS上に作成されます。
出力先はConfig Toolセットアップ時に指定したPolicy file directoryです。ここでは/u/CDP201/cdpConfig/
ファイル | 説明 |
---|---|
<policyName>.policy | Data Streamer関連情報を管理(どのデータをどこに送付するか)。Data Streamer起動プロシージャーで、このファイル名を指定。 |
<policyName>.config.properties <policyName>.zlf.conf |
Log Forwarder関連情報を管理(Log Fowarder関連ライブラリ、使用するData Streamerのポート番号など)。Log Forwader起動プロシージャーの”ENVDIR”で示されたディレクトリ下に適切な名前で配置する必要がある。 |
<policyName>.sde | System Data Engine関連情報を管理(取得するデータの情報)。実体は、ポリシーに追加したData Streamに紐づくSHBODEFSデータセットのメンバー(Data Streamとしての処理を独自言語で実装したもの)をコンカチしたもの。System Data Engine起動プロシージャー/バッチ実行用JCLで、このファイル名を指定。 |
<policyName>.layout | ポリシーエディターの画面レイアウト情報を保持 |
2.CDPz各コンポーネントの起動
上で生成されたファイルを使用して、CDPzの各コンポーネントを実行することになります。
そのため、起動プロシージャーを編集し、上で生成したファイルを参照するようにします。
Data Streamer: HBODSPRO => xxx.policyファイル
Log Forwarder: HBOPROC => xxx.config.properties, xxx.zlf.confファイルのディレクトリ
System Data Engine: HBOSMF => xxx.sdeファイル
補足: オブジェクト相関図
なかなか全体像を捉えるのが難しく、名前も混乱しやすいので、各オブジェクトの相関を整理してみました。
おわりに
ようやく全体のイメージがわかってきた気がします。
今後、SYSLOG, SMFデータをELKに取り込む方法を見ていきたいと思います。