3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VSAM on z/OS のレプリケーション - (1) 環境構築 (to Db2)

Last updated at Posted at 2021-11-10

はじめに

メインフレーム上の既存資産を有効活用するために様々なソリューションが提供されています。当記事では、z/OS上にあるVSAMファイルを分散系プラットフォームにレプリケーションをするソリューションを取り上げます。ここでは、IIDRのVSAM Remote Sourceという機能に着目し、実際にレプリケーションを行う手順を具体的に見ていきたいと思います。
最初は環境の構築からやっていきます(まずは関連コンポーネントのインストール周り)。
レプリケーション先(ターゲット)としてはとりあえずLinux上のDb2を想定しています。

関連記事

VSAM on z/OS のレプリケーション - (1) 環境構築(to Db2)
VSAM on z/OS のレプリケーション - (2) レプリケーション構成(to Db2)
VSAM on z/OS のレプリケーション - (3) Kafka連携
VSAM on z/OS のレプリケーション - (4) VSAMファイルの追加(Kafka連携) / レプリケーションのテスト

IBM InfoSphere Data Replication(IIDR) - Change Data Capture(CDC)

IBM InfoSphre Data Replication というレプリケーションをサポートする製品があります(有償)。この製品は元になるデータを別のプラットフォームの別の種類のデータソースにレプリケーションする機能を提供しています。
IIDRではレプリケーションの方式としては大きく CDC(Change Data Capture) レプリケーション、Qレプリケーション、SQLレプリケーションに分かれますが、ここではCDCレプリケーションを取り上げます。
元(ソース)のデータとレプリケーション先(ターゲット)となるデータとしては様々なタイプのものがサポートされています。例えば、z/OS上のDb2、IMS、VSAMなどを、オープン系のOracle、PostgreSQL、Apache Hadoopなどにレプリケーションすることができます。また、メッセージング・ミドルウェアであるApache Kafkaをターゲットとすることもできますので、これを使えばより柔軟なデータ連携が行えます。
サポートされるソース/ターゲットの詳細は以下をご参照ください。
参考: Supported source and targets

扱うデータソースの種類、プラットフォームによって具体的な構成方法は変わってきますが、大まかには以下のような構成を取ることになります。
image.png
参考: CDC Replication について

VSAM Remote Source

前述の通りIIDRのCDCレプリケーションではさまざまなデータソースを取り扱うことができ、z/OS上のVSAMもソースとして扱うことができます。扱うデータソースによって各種構成方法やバリエーションもいくつかあります。VSAMのReplication用にVSAM Remote SourceというReplication Engineが提供されていますので、当記事ではこのVSAM Remote Sourceを使用したReplicationにフォーカスしたいと思います。
VSAM Remote Sourceを使用してレプリケーションを行う場合の構成としては以下のようになります。
image.png

補足

  • Source(VSAM): ソースとなるVSAMはCICS Transaction Server もしくはCICS VSAM Recovery管理下のVSAMです(更新ログを読んでレプリケーション先に反映させるため)。
  • Source Capture Engine: 本体であるVSAM Remote SourceはIA LinuxのDockerイメージとして提供されます。ログを読み取る機能のみz/OS上で稼働することになります(これによりz/OS側の負荷を最小限に抑えられます)。
  • Classic Data Architect(CDA): VSAM Remote Sourceを使用した構成の場合、管理用のコンポーネントとしてCDAというGUIのツールが必要になります。VSAMをレプリケーションする際は対象のVSAMファイルをリレーショナルデータベースの表にマッピングする必要がありますが、そのマッピングの定義を行うためにこのツールが必要になります。GUIのツールとして動作します。
  • Target Engine: レプリケーション先のターゲットに合わせて適宜Replication Engineを構成します。例えばDb2をターゲットにしたいのであればDb2用のReplication Engine、Kafkaと連携したければKafka用のReplication Engineを構成します。

上の図は各コンポーネントを個別のノードに分割して配置するように記載していますが、これは分界点を示すためにそのように図示しています。実際の物理的な構成としては、サポートするプラットフォームが同じであれば複数のコンポーネントを同一マシン上に構成することも可能です。

全体像

今回レプリケーションのテスト用に構築する環境の全体像を以下に示します。
image.png

Dockerコンテナとして動作するVSAM Remote Source、Access Server、ターゲットのデータソース(Db2)はWindowsのVirtualBox上に仮想OSとして立てたREHL 8.2上に構築し、CDA, Management ConsoleはホストOSであるWindows10上に構築する想定です。

TCPコネクション、ユーザーの整理

今回はテスト環境ということで、サーバーをまとめたり仮想化技術を使っていて混乱しがちなので、実際使用するポート番号、管理ユーザーの辺りについて整理しておきます。
TCPのコネクションはどのコンポーネントからどのポートに対してどちら向きにコネクションを張るのかというのは非常に重要で、それをきちんと意識しておかないと構成上どこに何の値を設定してよいのか混乱しがちなので注意してください。(マニュアルの記述だけだとその辺りを読み解くのが非常に困難です...。)
image.png

特に気を付けたいのがz/OSとの接続部分です。z/OSはセキュアなネットワークに配置されていることも多く外部接続についてはネットワーク上の制限があることがほとんどです。今回のようなVSAM Remote Sourceを使用する構成の場合、Linux→z/OS の方向でTCPコネクションが張られることになります。レプリケーションの種類によっては逆向き(z/OS→Linux)のコネクションが必要なケースもあり、ネットワーク構成上そのような構成が行えないこともあります。z/OSからみるとインバウンドのコネクションのみでレプリケーションの構成が行えるというのは、VSAM Remote Sourceの大きな利点とも言えます。

今回ホスト側は実際のz/OSではなくOpenShift上のWaziというエミュレーターを使っているので、外部からLogReaderにアクセスする際は別の公開用のポート(30087)を使用する想定です。
LinuxはWindows10上のVirtualBoxの仮想OSとして稼働させます。ホストOSであるWindowsからLinuxへの接続時はポートフォワードを使用してアクセスするので、こちらも別の公開用ポートでアクセスすることになります。
また、ソース側エンジン、ターゲット用エンジン、管理サーバー(Access Server)を1OS上に共存させているので、それぞれ別の管理ユーザー(実行ユーザー)を用意しています。

環境構築

今回使用する主なコンポーネントのバージョンはこちら。

z/OS V2.4
CICS TS V5.5

REHL V8.2
InfoSphere Data Replication V11.4 - Change Data Capture
Db2 V11.5.4

Windows10

全体像の図の吹き出しの番号順にそれぞれ導入していきます。

※最新fixはfix centralから入手。
もしくは以下のサイトのリンクから辿るとIIDR V11.4のfixが直接選択できます。
IBM Support - IIDR Management Console and Access Server patches
http://www.ibm.com/support/fixcentral/swg/quickorder?parent=ibm%3FInformation%20Management&product=ibm/Information+Management/IBM+InfoSphere+Data+Replication&release=11.4&platform=All&function=all&source=fc

(1) Access Server

インストール

参考: Access Server のインストール (UNIX および Linux)

解凍

[root@test12 /Inst_Image/CDC]# unzip CDC11403Linuxx86-64_AccessServer.zip
Archive:  CDC11403Linuxx86-64_AccessServer.zip
  inflating: iidraccess-11.4.0.3-11041-linux-x86-setup.bin

[root@test12 /Inst_Image/CDC]# chmod 755 iidraccess-11.4.0.3-11041-linux-x86-setup.bin

[root@test12 /Inst_Image/CDC]# ls -la
合計 470572
drwxr-xr-x.  2 root root       103  7月 30 18:21 .
drwxr-xr-x. 11 root root       124  7月 30 18:21 ..
-rwxr-x---.  1 root root 240263566  7月 30 18:21 CDC11403Linuxx86-64_AccessServer.zip
-rwxr-xr-x.  1 root root 241594412 10月  5  2020 iidraccess-11.4.0.3-11041-linux-x86-setup.bin

展開されたbinを実行してインストールします。

インストール時のログ
[root@test12 /Inst_Image/CDC]# ./iidraccess-11.4.0.3-11041-linux-x86-setup.bin
インストールの準備
インストーラー アーカイブから JRE を抽出しています...
JRE を展開しています...
インストーラー アーカイブからインストール リソースを抽出しています...
このシステム環境のインストーラーを構成しています...

インストーラーを起動しています...

===============================================================================
ロケールの選択...
----------

    1- English
  ->2- 日本語

ロケールを番号で選択:
===============================================================================
IBM InfoSphere Data Replication Access Server             (InstallAnywhere で作成)
-------------------------------------------------------------------------------

コンソール モード インストールの準備中...




===============================================================================
概要
--

InstallAnywhere を使用して、IBM InfoSphere Data Replication Access
Server をインストールします。

実行中のプログラムがあれば、
インストールを継続する前に終了させてください。

各プロンプトに応答して、
インストールの次のステップに進みます。
前のステップに戻って変更を加えたい場合は、
「back」と入力します。

「quit」と入力すると、
いつでもインストールをキャンセルできます。

続行するには ENTER キーを押します:



===============================================================================
インストール・フォルダーの選択
---------------

インストール・フォルダー

  デフォルトのインストール フォルダー: /opt/IBM/InfoSphereDataReplication/AccessServer

絶対パスを入力するか、ENTER
   キーを押してデフォルトを使用してください。
      :



===============================================================================




    ライセンス情報

    以下の「プログラム」は、お客様と IBM
とが事前に合意した「プログラム」の
    使用許諾条件に加えて、
次のライセンス情報の使用条件に基づいて使用許諾さ
    れます。 お客様が「プログラム」の有効な使用許諾条件
に事前に合意していな
    い場合、 プログラムのご使用条件 (Z125-3301-14)
が適用されます。

    プログラム名 (プログラム番号):
    IBM InfoSphere Data Replication Management Console / Access Server v11.
    4.0.3 (Tool)

    以下の標準条件が、
ライセンシーによる「プログラム」の使用に適用されま
    す。

    使用制限付き権利

    IBM プログラムのご使用条件 (以下「IPLA」といいます。)
、および本「ライ
    センス情報」に記載されている通り、IBM は、
ライセンシーに対し、「プログ

ご使用条件の続きを読む場合は、Enter
   キーを押してください。「同意する」場合は「1」を押し、
   「同意しない」場合は「2」、印刷する場合は「3」、
   英文でご覧になる場合は「5」を押してください。
   「99」を押すと前の画面に戻ります。: 1




===============================================================================
Enable LDAP Configuration
-------------------------

Enable and select an LDAP configuration.
  ->1- None (Standard Mode)
    2- LDAP Authentication Only
    3- LDAP Authentication & Authorization
    4- LDAP CHCCLP Embedded

CHOOSE LDAP CONFIGURATION BY NUMBER, OR PRESS <ENTER> TO ACCEPT THE DEFAULT
   : 1



===============================================================================


Access Server のTCP/IP ポートを入力します。
ポート番号: (デフォルト: 10101):



===============================================================================
ユーザー・データ・フォルダーの構成
-----------------

Access Server にはログ、構成情報、
およびユーザー・データを保管するフォルダーが必要です。
この情報を保管するフォルダーを指定してください。


どこにユーザー・データ・フォルダーを作成しますか?

デフォルト・ユーザー・データ・フォルダー:
/opt/IBM/InfoSphereDataReplication/AccessServer


   絶対パスを入力するか、または <ENTER>
   を押してデフォルトを受け入れます。:



===============================================================================
プリインストール要約
----------

処理を続行する前に、以下の内容を確認してください。

製品名:
    IBM InfoSphere Data Replication Access Server

インストール フォルダー:
    /opt/IBM/InfoSphereDataReplication/AccessServer

リンク フォルダー:
    /root

ユーザー・データ・フォルダー:
    /opt/IBM/InfoSphereDataReplication/AccessServer

ディスク容量情報 (インストール先):
    必要なディスク容量:  359,314,326 バイト
    使用可能なディスク容量: 53,888,585,728 バイト

続行するには ENTER キーを押します:



===============================================================================
インストール中...
----------

 [==================|==================|==================|==================]
 [------------------|------------------|------------------|------------------]



===============================================================================
インストールの完了
---------

お疲れさまでした。 IBM InfoSphere Data Replication Access Server
は次の場所へ正常にインストールされました:

/opt/IBM/InfoSphereDataReplication/AccessServer

この Access Server のインストール環境に接続する前に、Access
Server を始動し、
管理ユーザー・アカウントを作成する必要があります。
詳細については、
インストール・ガイドを参照してください。
同等のバージョンの IBM InfoSphere Change Data Capture Management
Console をまだインストールしていなければ、Access Server
に接続する前に Management Console
もインストールする必要があります。


ENTER キーを押すと、インストーラーが終了します:

Access Server 実行用ユーザー作成

rootユーザーでバージョン確認のコマンド実行したら怒られた。

[root@test12 /Inst_Image/CDC]# /opt/IBM/InfoSphereDataReplication/AccessServer/bin/dmshowversion
dmshowversion cannot be run as root

Access Server関連のコマンドはrootユーザーでの実行は許可されていないようです。
Access Server実行ユーザーとして"cdcadmin"を作成します。パスワードも設定しておきます。

[root@test12 ~]# useradd cdcadmin
[root@test12 ~]# passwd cdcadmin
ユーザー cdcadmin のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

cdcadminユーザーでバージョン確認

[cdcadmin@test12 /opt/IBM/InfoSphereDataReplication/AccessServer/bin]$ ./dmshowversion
IBM InfoSphere Data Replication Access Server
バージョン: 11.4.0.3.11041

インストール先のowner:group属性をcdcadmin:cdcadminに変えておきます。(後続処理でAccess Server起動時にこのディレクトリ下で書き込み権限不足のメッセージが出ることがあったので)

[root@test12 ~]# cd /opt/IBM
[root@test12 /opt/IBM]# chown -R cdcadmin:cdcadmin InfoSphereDataReplication

参考: Access Server実行ユーザーに書き込み権限が無いとAccess Server起動時に以下のログが出力される

...
log:UserFilePersistenceHandler: ディレクトリー: /opt/IBM/InfoSphereDataReplication/AccessServer/data/users を作成できませんでした。
...
log:AgentFilePersistenceHandler: ディレクトリー: /opt/IBM/InfoSphereDataReplication/AccessServer/data/agents を作成できませんでした。

fix適用

現時点での最新fixをfix centralのサイトから入手します。
(2021年7月時点の最新: 11.4.0.4 Build 11062)
入手したbinを実行してfix適用します。

fix適用時のログ
[root@test12 /Inst_Image/CDC]# ./iidraccess-11.4.0.4-11062-linux-x86-setup.bin
インストールの準備
インストーラー アーカイブから JRE を抽出しています...
JRE を展開しています...
インストーラー アーカイブからインストール リソースを抽出しています...
このシステム環境のインストーラーを構成しています...

インストーラーを起動しています...

===============================================================================
ロケールの選択...
----------

    1- English
  ->2- 日本語

ロケールを番号で選択: 2
===============================================================================
IBM InfoSphere Data Replication Access Server             (InstallAnywhere で作成)
-------------------------------------------------------------------------------

コンソール モード インストールの準備中...




===============================================================================
概要
--

InstallAnywhere を使用して、IBM InfoSphere Data Replication Access
Server をインストールします。

実行中のプログラムがあれば、
インストールを継続する前に終了させてください。

各プロンプトに応答して、
インストールの次のステップに進みます。
前のステップに戻って変更を加えたい場合は、
「back」と入力します。

「quit」と入力すると、
いつでもインストールをキャンセルできます。

続行するには ENTER キーを押します:



===============================================================================
インストール・フォルダーの選択
---------------

インストール・フォルダー

  デフォルトのインストール フォルダー: /opt/IBM/InfoSphereDataReplication/AccessServer

絶対パスを入力するか、ENTER
   キーを押してデフォルトを使用してください。
      :



===============================================================================
インストール済み環境のアップグレード
------------------

既存のインストール済み環境をアップグレードしますか?

  ->1- はい
    2- いいえ

選択する項目の番号を入力するか、
   デフォルトを使用する場合は ENTER キーを押してください:



===============================================================================




    ライセンス情報

    以下の「プログラム」は、お客様と IBM
とが事前に合意した「プログラム」の
    使用許諾条件に加えて、
次のライセンス情報の使用条件に基づいて使用許諾さ
    れます。 お客様が「プログラム」の有効な使用許諾条件
に事前に合意していな
    い場合、 プログラムのご使用条件 (Z125-3301-14)
が適用されます。

    プログラム名 (プログラム番号):
    IBM InfoSphere Data Replication Management Console / Access Server v11.
    4.0.4 (Tool)

    以下の標準条件が、
ライセンシーによる「プログラム」の使用に適用されま
    す。

    使用制限付き権利

    バンドル・プログラムを例外として、
ライセンシーに提供されるすべての IBM
    ソフトウェアは、本ライセンス情報に基づき、
「主プログラム」のライセン

ご使用条件の続きを読む場合は、Enter
   キーを押してください。「同意する」場合は「1」を押し、
   「同意しない」場合は「2」、印刷する場合は「3」、
   英文でご覧になる場合は「5」を押してください。
   「99」を押すと前の画面に戻ります。: 1




===============================================================================


Access Server のTCP/IP ポートを入力します。
ポート番号: (デフォルト: 10101):



===============================================================================
ユーザー・データ・フォルダーの構成
-----------------

Access Server にはログ、構成情報、
およびユーザー・データを保管するフォルダーが必要です。
この情報を保管するフォルダーを指定してください。


どこにユーザー・データ・フォルダーを作成しますか?

デフォルト・ユーザー・データ・フォルダー:
/opt/IBM/InfoSphereDataReplication/AccessServer


   絶対パスを入力するか、または <ENTER>
   を押してデフォルトを受け入れます。:



===============================================================================
プリインストール要約
----------

処理を続行する前に、以下の内容を確認してください。

製品名:
    IBM InfoSphere Data Replication Access Server

インストール フォルダー:
    /opt/IBM/InfoSphereDataReplication/AccessServer

リンク フォルダー:
    /root

ユーザー・データ・フォルダー:
    /opt/IBM/InfoSphereDataReplication/AccessServer

ディスク容量情報 (インストール先):
    必要なディスク容量:  358,778,709 バイト
    使用可能なディスク容量: 53,284,487,168 バイト

続行するには ENTER キーを押します:



===============================================================================
インストール中...
----------

 [==================|==================|==================|==================]
 [------------------|------------------|------------------|------------------]



===============================================================================
インストールの完了
---------

お疲れさまでした。 IBM InfoSphere Data Replication Access Server
は次の場所へ正常にインストールされました:

/opt/IBM/InfoSphereDataReplication/AccessServer

この Access Server のインストール環境に接続する前に、Access
Server を始動し、
管理ユーザー・アカウントを作成する必要があります。
詳細については、
インストール・ガイドを参照してください。
同等のバージョンの IBM InfoSphere Change Data Capture Management
Console をまだインストールしていなければ、Access Server
に接続する前に Management Console
もインストールする必要があります。


ENTER キーを押すと、インストーラーが終了します:

あれ?これ、最初からこっちインストールすればよかったのかも。

cdcadminユーザーでバージョン確認。

[cdcadmin@test12 /opt/IBM/InfoSphereDataReplication/AccessServer/bin]$ ./dmshowversion
IBM InfoSphere Data Replication Access Server
バージョン: 11.4.0.4.11062

稼働確認

参考:
Starting Access Server
dmaccessserver—Starting Access Server
dmshutdownserver—Shut down Access Server

マニュアルのコマンドリファレンスはまともに書かれていない...

cdcadminユーザーに切り替えてdmaccesserverコマンドのhelp見てみます。

[cdcadmin@test12 ~]$ /opt/IBM/InfoSphereDataReplication/AccessServer/bin/dmaccessserver  --help
dmaccessserver [debug] [debug:console] [log] [log:console] [local_address:] [local_port:#] [local_port_count:#] [#]

  debug              クライアント/サーバー・メッセージ・トレースをファイルに出力します。
  debug:console      クライアント/サーバー・メッセージ・トレースをコンソールに出力します。
  log                サーバー・アクティビティーのログをファイルに書き出します。
  log:console        サーバー・アクティビティーのログをコンソールに書き出します。
  local_address:     Access Server が接続を確立するためにソケットのバインドに使用するローカル IP アドレス。
  local_port:#       Access Server が接続を確立するために使用する最初のポート。
  local_port_count:# 予約するポートの数。
  #                  Access Server のリスナー・ポート。

ログ・オプションとデバッグ・オプションを併用するべきではありません。 さらに、ファイルに
書き込むパラメーターとコンソールに書き込むパラメーターを同時に使用することもできません。 ポートを指定する場合は、
最後のパラメーターとして指定する必要があります。そうでない場合は、デフォルト・ポート 10101 が使用されます。 コマンド行で
指定する引数と dmaccessserver.vmargs で設定されている引数を重複して使用することはできません。

logオプション指定して起動

[cdcadmin@test12 ~]$ /opt/IBM/InfoSphereDataReplication/AccessServer/bin/dmaccessserver log &

/opt/IBM/InfoSphereDataReplication/AccessServer/log/以下にlog.txtファイルが出力されました。

/opt/IBM/InfoSphereDataReplication/AccessServer/log/log20210731123944.txt
!! time:1627702784061
   thread:main-1
   log:Access Server started.
!! time:1627702784579
   thread:main-1
   method:ConnectionManager>initialize
   log:MONITOR_AGENT_POOL created
!! time:1627702784580
   thread:main-1
   method:ConnectionManager>startClientSessionHeartbeat
   log:Client session heartbeat interval set to: 60000
!! time:1627702784591
   thread:main-1
   method:ConnectionManager>startServer
   log:Server is up and listening on port 10101.
!! time:1627703024588
   log:clientSessions size=0
   monitorAgentPool count:0
   -- heartbeat:60000

10101ポートがListenされていることを確認

[cdcadmin@test12 ~]$ netstat -an | grep 10101
tcp6       0      0 :::10101                :::*                    LISTEN

dmshutdownコマンドで停止します。

[cdcadmin@test12 ~]$ /opt/IBM/InfoSphereDataReplication/AccessServer/bin/dmshutdownserver
[1]+  終了                  /opt/IBM/InfoSphereDataReplication/AccessServer/bin/dmaccessserver log

shutdown時のログ

/opt/IBM/InfoSphereDataReplication/AccessServer/log/log20210731123944.txt
!! time:1627703430051
   thread:main-1
   method:ConnectionManager>serverSocketConnector
   log:Creating TCPMessageThread (TCPMessageThread).
!! time:1627703430053
   thread:main-1
   method:ConnectionManager>serverSocketConnector
   log:Accepted connection request.
!! time:1627703430757
   thread:TCPMessageThread/From:localhost@52299-43
   method:TCPMessageThread>handleMsgForServer
   log:Server received negotiate encryption request.
!! time:1627703430759
   thread:TCPMessageThread/From:localhost@52299-43
   method:TCPMessageThread>run
   log:Server received verify localhost request.
!! time:1627703430764
   thread:TCPMessageThread/From:localhost@52299-43
   method:TCPMessageThread>run
   log:Server received a shutdown request.

しかしタイムスタンプがUnixTimeのまま出力されてるっぽい。ちゃんと人間様に分かりやすく変換して書いてくれよ。

[cdcadmin@test12 /]$ date -d @1627703430.764
2021年  7月 31日 土曜日 12:50:30 JST

※ミリ秒を含む13桁で表示されてるので、上のようにdateコマンドで変換する場合は最後3桁の前にピリオド入れる必要があります。

管理用ユーザー・アカウント作成

参考: Access Server ユーザー・アカウントを非 LDAP モードで作成 (UNIX および Linux)

OS上のユーザーとは別に、Access Serverで有効なユーザー・アカウントを作成する必要があるようです。
上の手順に従ってAccess Serverのユーザー・アカウントを作成します。ここでは、OSユーザー名に合わせてcdcadminというユーザー・アカウントを作成することにします。

[cdcadmin@test12 /opt/IBM/InfoSphereDataReplication/AccessServer/bin]$ ./dmcreateuser cdcadmin "CDC SYSADM" "Administorator" xxxxx SYSADMIN TRUE FALSE TRUE

ネットワーク構成

REHL上ではfirewalldを稼働させているので、Access ServerがListenしているポート10101へのアクセスを許可しておきます。

[root@test12 ~]# firewall-cmd --zone=public --add-port=10101/tcp --permanent
success
[root@test12 ~]# firewall-cmd --reload
success

さらに、このRHELはVirtual Box上で稼働しているので、10101ポートにWindowsからアクセスできるようポートフォワードの設定を追加しておきます。(localの20101 => RHEL上の10101にフォワードするようにしておく)

(2) Management Console

参考: Installing Management Console

インストール

インストーラーのexeを実行
image.png

Installation Wizardの操作

OK
image.png

次へ
image.png

インストールフォルダを指定して次へ
image.png

使用条件を読み同意して次へ
image.png

次へ
image.png

次へ
image.png

インストール
image.png

完了
image.png

fix適用

現時点での最新fixをfix centralのサイトから入手します。
(2021年7月時点の最新: 11.4.0.4 Build 11062)
入手したexe(iidrmc-11.4.0.4-11062-setup.exe)を実行してfix適用します。

Installation Wizardの操作

OK
image.png

次へ
image.png

インストールフォルダを指定して次へ
image.png

はい
image.png

使用条件を読み同意して次へ
image.png

次へ
image.png

インストール
image.png

完了
image.png

※これも最初からこっちをインストールすればよかったっぽい。

稼働確認

スタートメニューからManagement Consoleを選択して起動。

先に作成したAccess Server用のユーザー・アカウントを指定してログインします。(OSユーザーとは別)
※VirtualBox上のREHLに対してポートフォワードをしているので、サーバー名はlocalhost、ポート番号は20101を指定しています。
image.png

接続できたようです。
image.png

(3) VSAM Remote Source - Linux側構成

以下の記述をベースに進めていきます。
参考:
Container system requirements
Installing the container components

SELinuxの設定はpermissiveにしている前提です。

Dockerイメージの取り込み

現時点での最新fixをfix centralのサイトから入手します。
(2021年7月時点の最新: 11.4 Fix Pack 5 Build 40)
入手したVSAM_Remote_Source_114_Linux_x86.tarを解凍します。

[root@test12 /Inst_Image/CDC/VSAMRemoteSource]# ls -la
合計 1261984
drwxr-xr-x. 3 root root       273  7月 30 20:28 .
drwxr-xr-x. 4 root root        50  7月 30 20:28 ..
-rw-r--r--. 1 root root       451  6月 24 08:09 VSAM_Remote_Source_114.pub
-rw-r--r--. 1 root root       256  6月 24 08:09 VSAM_Remote_Source_114.sig
-rw-r--r--. 1 root root 645419520  6月 24 08:09 VSAM_Remote_Source_114.tar
-rw-r--r--. 1 root root      1952  6月 24 08:09 VSAM_Remote_Source_114_Certificate.pem
-rw-r--r--. 1 root root      1858  6月 24 08:09 VSAM_Remote_Source_114_Intermediate_Certificate.pem
-rwxr-x---. 1 root root 646830080  7月 30 20:26 VSAM_Remote_Source_114_Linux_x86.tar

VSAM Remote SourceはDockerイメージとして提供されます(VSAM_Remote_Source_114.tar)。
手順ではDockerをコンテナプラットフォームとして使用する想定になっていますが、ここではRHELを使っているので代わりにPodmanを使います。

tarで提供されているイメージをPodman環境に取り込みます。

[root@test12 /Inst_Image/CDC/VSAMRemoteSource]# podman load -i VSAM_Remote_Source_114.tar
Getting image source signatures
Copying blob 1a6543399d61 [==>-----------------------------------] 18.4MiB / 222.8MiB
Copying blob 2287a45f9807 done
Copying blob f0a77c369efd done
...
Copying blob dd52b12bc073 done
Copying config c6c3824f8e done
Writing manifest to image destination
Storing signatures
Loaded image(s): localhost/classiccdc:latest

確認

[root@test12 /Inst_Image/CDC/VSAMRemoteSource]# podman images
REPOSITORY                  TAG      IMAGE ID       CREATED        SIZE
localhost/classiccdc        latest   c6c3824f8e69   5 weeks ago    645 MB

podman環境にclassiccdcというイメージが作成されました。

podman inspect classiccdc
[root@test12 ~]# podman inspect classiccdc
[
    {
        "Id": "c6c3824f8e69a0aa4ada584229a1c8ae8b704e5ca932231b2432d6cf69fc56d3",
        "Digest": "sha256:2c1cbdf720f5864d7a7007a708e03a53c959ee607fd8429f0dba40cc3d20d804",
        "RepoTags": [
            "localhost/classiccdc:latest"
        ],
        "RepoDigests": [
            "localhost/classiccdc@sha256:2c1cbdf720f5864d7a7007a708e03a53c959ee607fd8429f0dba40cc3d20d804"
        ],
        "Parent": "",
        "Comment": "",
        "Created": "2021-06-23T23:09:20.510328356Z",
        "Config": {
            "User": "cecuser",
            "Env": [
                "PATH=./:../bin:/classic/shell:/classic/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "container=oci",
                "LD_LIBRARY_PATH=../lib:./:../icu/linux/lib:/classic/lib:/classic/icu/linux/lib"
            ],
            "Cmd": [
                "/bin/sh",
                "-c",
                "./StartCacShell.sh"
            ],
            "WorkingDir": "/classic/shell",
            "Labels": {
                "architecture": "x86_64",
                "build-date": "2021-06-02T19:27:01.978498",
                "com.redhat.build-host": "cpt-1005.osbs.prod.upshift.rdu2.redhat.com",
                "com.redhat.component": "ubi8-container",
                "com.redhat.license_terms": "https://www.redhat.com/en/about/red-hat-end-user-license-agreements#UBI",
                "description": "The Universal Base Image is designed and engineered to be the base layer for all of your containerized applications, middleware and utilities. This base image is freely redistributable, but Red Hat only supports Red Hat technologies through subscriptions for Red Hat products. This image is maintained by Red Hat and updated regularly.",
                "distribution-scope": "public",
                "io.k8s.description": "The Universal Base Image is designed and engineered to be the base layer for all of your containerized applications, middleware and utilities. This base image is freely redistributable, but Red Hat only supports Red Hat technologies through subscriptions for Red Hat products. This image is maintained by Red Hat and updated regularly.",
                "io.k8s.display-name": "Red Hat Universal Base Image 8",
                "io.openshift.expose-services": "",
                "io.openshift.tags": "base rhel8",
                "maintainer": "Red Hat, Inc.",
                "name": "ubi8",
                "release": "203.1622660121",
                "summary": "Provides the latest release of Red Hat Universal Base Image 8.",
                "url": "https://access.redhat.com/containers/#/registry.access.redhat.com/ubi8/images/8.4-203.1622660121",
                "vcs-ref": "ed5adf70c28eb951940c72f4173fa32c4bca2165",
                "vcs-type": "git",
                "vendor": "Red Hat, Inc.",
                "version": "8.4"
            }
        },
        "Version": "19.03.8",
        "Author": "",
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 645138526,
        "VirtualSize": 645138526,
        "GraphDriver": {
            "Name": "overlay",
            "Data": {
                "LowerDir": "/var/lib/containers/storage/overlay/6d262e625465026c0ea363c7885abf45e2d16016de0a618643312d96c16ab682/diff:/var/lib/containers/storage/overlay/7e5dc8003c6c27370eb354e73694e7da278cee1e26848fa72031d206b40cb0eb/diff:/var/lib/containers/storage/overlay/bac6af308c94902f304c3695d79b2c195ffb4882e541469d0869c49e17f9a16d/diff:/var/lib/containers/storage/overlay/95e61ff7db4e0703477c659492855838e817a8816d71138cb54ad598510ec9fd/diff:/var/lib/containers/storage/overlay/23704016fbb7fc9b581f8645e8d567d4f2cfd7f9a625b5a52e8a12f5a92ff23a/diff:/var/lib/containers/storage/overlay/430ad6ef71a039975c469497ff98beb082ab1cd6e700ceb04f419c79defd9064/diff:/var/lib/containers/storage/overlay/7858fc4938639016a494ec87caed70eb086772a84da6580d262d07fd27958b99/diff:/var/lib/containers/storage/overlay/41a7af3c04294aa188fd1f1f6bb7ff1e0a23ab7feb4b415898038e24d3119ae2/diff:/var/lib/containers/storage/overlay/da0478ea33325aefd65b64fe679961d02f1d5db9db28ff6fd439d9578fc6698b/diff:/var/lib/containers/storage/overlay/baa389965f509ca1a8bfaf3c8528dd72b925a93a30b0e38beb7d5064a06618df/diff:/var/lib/containers/storage/overlay/bddc960d53b0a8d2afa13f77c49c6d04ad45632d78ee8c601a101986e4c8a93e/diff:/var/lib/containers/storage/overlay/b1e4ebd07d0b91c62a4289404ac5133a5db11d81dc58ae09d487d08c2385323a/diff:/var/lib/containers/storage/overlay/bc1b99e87ae3d823bd58a328f3df7ac72e44bcf1f93c06b4961e366e05fd044d/diff:/var/lib/containers/storage/overlay/cd3f4cbcbc72e9dc5c9c5ce9b33e9590fc4e2dd6097d571b9bfb3451726263b8/diff:/var/lib/containers/storage/overlay/fd0c17bb04cd42537c85f21b4af6f93eea27d331e9baaaefc928a2b74cc4e3b4/diff:/var/lib/containers/storage/overlay/57aa90dda14a5fd71720fc7eb63b10325a6d4978b584b5780b62975cc73a4c51/diff:/var/lib/containers/storage/overlay/322cf7cd758331ef58e166ac6e5b39450cad6f8fae4257557f8df70b0ed0b664/diff:/var/lib/containers/storage/overlay/4aed4e21264fd6539791df9a32bdca075d6e92c2c59090568a5460fdb54d1c4d/diff:/var/lib/containers/storage/overlay/09e6d93f8677d71c8725b6cf4b0ada51634e089e6ec327d439e3fd849a414868/diff:/var/lib/containers/storage/overlay/c33af1e4394ede1920c974b687c1a5e3a9a7358723849d52e47f9c4bf49c395f/diff:/var/lib/containers/storage/overlay/d75670ba9d9b045e0e3700c23690072d598db2abb0e9ba8fec5e0a13616288c4/diff:/var/lib/containers/storage/overlay/e6ec4bc7b219f7c3e0ac5cec854465ed30ddc86efc1d4f7eeed1afe35011275a/diff:/var/lib/containers/storage/overlay/94d50b86171175ef1eeda1be646ba85156b31804aa0712aad983363a2a9d5c79/diff:/var/lib/containers/storage/overlay/18e3d874bb5588b2c5de2b62f847114e4527e9699b328a7f6fe201afe201a2e2/diff:/var/lib/containers/storage/overlay/2c36ad3837dbed44d1e6805ace1922aeecba488f18e212dd5bfaf87df6d2e898/diff:/var/lib/containers/storage/overlay/3126743185cf651c3e335ebddded5e7bc3b877253f08c38b42d7a4fc26bb63b7/diff:/var/lib/containers/storage/overlay/c7fdfb505198a0ae3c4bbcc8ed3eb5833ea58580b4885fc525fe3b9b564b4d83/diff:/var/lib/containers/storage/overlay/a09f25f9c1a06ea0bbc20d60fcb28e906a7df9408263a1ea31aa46f70eabef82/diff:/var/lib/containers/storage/overlay/f24792322db10ef997590f92538dd27e6c6eb4ea6687672d056b8ae81758dc5b/diff:/var/lib/containers/storage/overlay/dfc92486f7e2fe97de023c0b244e92ec525938b79c02345e10bee23e14e9ac35/diff:/var/lib/containers/storage/overlay/d53931dd3fb1522ccae5484de5f0835f6bd1daa50ca33a7433872d4e1b19debc/diff:/var/lib/containers/storage/overlay/d5d3878b4ff2ff6c5a54d37d6939d1c56b1b10890cbba2a4643b8a2a4902d69b/diff:/var/lib/containers/storage/overlay/6601ae1a01e0c8fbec0663b67d2d129c8ecde6bc7a9b0e9b96964874a4a5bacb/diff:/var/lib/containers/storage/overlay/722e157a9ae243495b94bcbf89c32147623e845e0dc28f6ab7a8bdc86bf4aa11/diff:/var/lib/containers/storage/overlay/e9dd6ad0a640403ef7a10d9e646286a68ebf1e6b4426583c95c52c2bef38467e/diff:/var/lib/containers/storage/overlay/e6f7b69290ad3b6907766c29d352ab9004e58c76a17b6818de82764983a54dd9/diff:/var/lib/containers/storage/overlay/fc7182def0c1e3eda270bab95544e496fa32515646be81400fc27d81dce41c22/diff:/var/lib/containers/storage/overlay/d44308e439f951b25e8f757f88a30961aaa0262d02b6ccbdf590ac639560faea/diff:/var/lib/containers/storage/overlay/e6bddceb3a0a6d13032b221e9d20e2c41320dd99b3bfd30c6f5cd4d8639667ea/diff:/var/lib/containers/storage/overlay/a4743111345f55091d28a1d47e82d26ad7e7ceeb9e183aba01d015230f551652/diff:/var/lib/containers/storage/overlay/804fdac0cc8abb3a1cbc828179ee6f0dac92526e6ed346879e350dc4167e12bf/diff:/var/lib/containers/storage/overlay/0c988f8a742fbe0997a2e1d3123d11d826eceec184b5b44bcac9cdec561d8f98/diff:/var/lib/containers/storage/overlay/dd0bb50090bfcb62272032541f983416a1958021747f6c2f2382ae94d0d0d37c/diff:/var/lib/containers/storage/overlay/6661f1b7beb7876cc38b6be06fdf71f105b87cd13efaf9e99fa528ff47f693ee/diff:/var/lib/containers/storage/overlay/95762e985a6006296acedba9fc28e0ee7b521821c0bddaad06ab5470d174284b/diff:/var/lib/containers/storage/overlay/cee692445fa210f51fc772c450616fa4315186a7d8033574f3507d0fbb0e0e9e/diff:/var/lib/containers/storage/overlay/61f8d7c628b1a9bea0d42c88b1ab2e5ac40154980f00fb35c1ed1f2b2be44f02/diff:/var/lib/containers/storage/overlay/b37d4111aea70a9af992d76eab29557ee23d1d2708308eef15dfe2365ff8b37e/diff:/var/lib/containers/storage/overlay/c5bdc36fcc2364f502fe0a4c8a3537ec9c8a96a8e0d2bbac72678e74f1e6a896/diff:/var/lib/containers/storage/overlay/00c1ef53edb117610ff1efc5808bff9f512cf105f9c3db6dd23b1c7f6cb9b01d/diff:/var/lib/containers/storage/overlay/7f3e04d142356367d25defece88b50f0ed2ce745ad52e7e392a7d53f2a836e36/diff:/var/lib/containers/storage/overlay/8c64a435aec672ac4df96cf718260886fc5712968ff4d16105260f107ad368af/diff:/var/lib/containers/storage/overlay/833398092d007baf1de605e4ff887a20b8d1aec3f9bdda32eed6a4d2096f0b69/diff:/var/lib/containers/storage/overlay/99fb78fc9aec69c9c7ac99939de9cf7d8f42c60219607ef5a0dda34662bcf4db/diff:/var/lib/containers/storage/overlay/2615f597d6bd8c39e276d728615425d16497bdf9611c17eb6934bf854fe20726/diff:/var/lib/containers/storage/overlay/c6b75c37b21e095f5de3da975e9a154d6bd782b66c2e564687c99a7b7e43d581/diff:/var/lib/containers/storage/overlay/0f1273591aec24fac67c7f12c79ac05606a3024789c3caeea24704a13da0d281/diff:/var/lib/containers/storage/overlay/c24e9ab423fb199dfb2d858a3b4eacfdffe8f92ddc7dbccafdfe847012f2e4f8/diff:/var/lib/containers/storage/overlay/c81295566974561f71cdb0d093c11a66076c30db1018abfb3a1691665be0aeda/diff:/var/lib/containers/storage/overlay/d88931dd2cfd052cb5fc51f7513a7963a8caee4d6d190bec29872e864073ac6c/diff:/var/lib/containers/storage/overlay/188e2cd436eb424f91d399233dc268e1a862e7706a62d20523755e16cee19adc/diff:/var/lib/containers/storage/overlay/5a4080a57925ad03a9ac48f310da8fef996ff234618e3ddc8adae8a03e821b85/diff:/var/lib/containers/storage/overlay/b8bb50b8834b4f67e0a8a43be496e44286588a7b0af7c41870de5eeb67b8276c/diff:/var/lib/containers/storage/overlay/5de5342a535c46ad835bc83834dd9e97254128d65dfd2f456307eb3f46a4db59/diff:/var/lib/containers/storage/overlay/8c5bc10cc45c30e4ef3c2732c401545566fe003c4a7c638ebebca36514bedf27/diff:/var/lib/containers/storage/overlay/20cc9aea9b9b18b21291b8d8f2ef38a210535fda4b25d05d441c74a83bab1702/diff:/var/lib/containers/storage/overlay/0d12cd4bd97259211b5cdece46d1ec767c7b21702bf22fd8d96683e24860603f/diff:/var/lib/containers/storage/overlay/b78e10188b679d3bd5710cd8257dc30ec82ca0f32249f2b98651d57730339b3e/diff:/var/lib/containers/storage/overlay/5d6096da7c71ac5afbd4b6f3f2956fa9c3fb117a063752345dd379749d6c637e/diff:/var/lib/containers/storage/overlay/5b0d44bdb4fb2109d375978727d76e4dfb4ac86d3cb0846e6d91ce3f4f778841/diff:/var/lib/containers/storage/overlay/d3486d77b632f2f3543cd2af1c799090ca7818af2830e44970bb9e7c91c020a7/diff:/var/lib/containers/storage/overlay/7a161892001d394574ec2045595d2d702cfb0580ae4e0904c4821299dbea6eb2/diff:/var/lib/containers/storage/overlay/d383dedf3e10f5ec8a0d88650c93d7d62ffa08af7370858ed9706337325ce723/diff:/var/lib/containers/storage/overlay/a7dc20abbc699803ed4aabc137a72a30d13a051e6caf98cd117d69b211481735/diff:/var/lib/containers/storage/overlay/056155075e75a5f5f4ed79b117fad049df73ed65fe66b90cc555f9f0406551c3/diff:/var/lib/containers/storage/overlay/4059e706dc3c4cf865a769d1476466bfd092b5794273fd3571f102fbecd48d21/diff:/var/lib/containers/storage/overlay/788a61c5488fe32ec30a9334576df31f53d67c321fc4df87bec020f3039d49ec/diff:/var/lib/containers/storage/overlay/ffbba9a73f334050486f7f02cbf64b60a43cccae73821303cedd0cc53bd4fd7a/diff:/var/lib/containers/storage/overlay/48476bb178e59b5a27bf1d6dfd313fb67f91ca3f17ffa306129ce57cf4f35b64/diff:/var/lib/containers/storage/overlay/aaf4793d7559924dcb3a76afcf3a4759623ffa1c20b512cbf7bbab00b0fa2f32/diff:/var/lib/containers/storage/overlay/5d7079edd08ad79d701fefe2788778933bd25028ebfa21af682a8b448027a2ac/diff:/var/lib/containers/storage/overlay/336a6ef49aea7d1bad8a19d56babe8a498e3573f57c5f56b40d8a27a889eb893/diff:/var/lib/containers/storage/overlay/b228a2de1f9548383d265ee47aa5ca7f7f75aab171c15f7b8f8a71e1b1c64ce5/diff:/var/lib/containers/storage/overlay/a3d72ee2e619513129afdd867b0ed7c36815b63007b9665a2e1aa8ec2ec43a20/diff:/var/lib/containers/storage/overlay/d428cb4b794f3d6c79f42e646a10bfc36e5f09114b8d75ba5a062fdbe70a276a/diff:/var/lib/containers/storage/overlay/324f5f41b9814f3f32258e17888fdc4cc42d0818da93b62f0b66ba66daff4a21/diff:/var/lib/containers/storage/overlay/dd153c4ab325e5505bec657ca539adb6684a7a168ff3c9f9ef03a655de11eb79/diff:/var/lib/containers/storage/overlay/30f6c0c14e1b87092101e9f785ff63c4a157517cec0608b9fb8276128ca0e916/diff:/var/lib/containers/storage/overlay/b82299d7e86b87ed023ee8cb0bd4edf2d8e0089c9a61169931590006d9136ec6/diff:/var/lib/containers/storage/overlay/af05373b56f1da6b8ab42279f256627d2d30fc921e8ffe0527aad36fb86901e7/diff:/var/lib/containers/storage/overlay/9ed9beadb7440ae0a13f05fb57f9c33808b4eb3fd2bac2b53c3eb8e99d94ce64/diff:/var/lib/containers/storage/overlay/793d3f3998bfc79b4785157e9b4bf5126eab478dc779719a52119d3f33ee0065/diff:/var/lib/containers/storage/overlay/7f520a72c4feebc7f839d354e5abb8c8c7b3ecc6de5e3c4c40180f6c5de26fb5/diff:/var/lib/containers/storage/overlay/4d6ec20a7de1122b164177432ad7ecf61734fe557799eeeb5e69d4424fa9f5ce/diff:/var/lib/containers/storage/overlay/f1dbebcbcf91a5e04800b814ef2b8714a1dd116c328a9c034359525c932bd295/diff:/var/lib/containers/storage/overlay/1a6543399d619ac51e7b928aa443dac16e52e28522e8e5d2232ee2360569f2c2/diff",
                "UpperDir": "/var/lib/containers/storage/overlay/6325dcce9a4e68a1978c87829302592dbd9bc8ebd18ad2aa4cc2314e318fa3a0/diff",
                "WorkDir": "/var/lib/containers/storage/overlay/6325dcce9a4e68a1978c87829302592dbd9bc8ebd18ad2aa4cc2314e318fa3a0/work"
            }
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:1a6543399d619ac51e7b928aa443dac16e52e28522e8e5d2232ee2360569f2c2",
                "sha256:f0a77c369efd5e6bde23cd1e9a6472b2781ea306e9872ce4c3c334fc55dd7481",
                "sha256:6e37d878cdc2fa5dafdaf64f11af2646d055d168626bd024aa78cf971465177f",
                "sha256:e5915ae8c3270c0d493fedc51205b89f79a1fb936205fdcf691b45cc567aae6c",
                "sha256:bb5e133776b8153c5b0408a89b2d2b3c713075b4bc7631535d04c1e782cfac42",
                "sha256:2287a45f9807c44d62f5406ac7d5854fe6649921074d23739a278f5d58cab2a3",
                "sha256:53ef8add929864c47ecb3bc70eaa0d1ad6c920709cd8c170287ea02762193c46",
                "sha256:9d25d8d64425a816fbf85d87de4bbc09fd18014de527bc83ddf6e9fb0906eee9",
                "sha256:fd7c685dc42cde08fb8e1ad4ecdb705b8934b13989feac8a6cc91d1dcaeb2d80",
                "sha256:9e880fae4311798c628bbba0da4773c4e3700c143904e2a4fd5b4c34d446ca9f",
                "sha256:018462556bcf276794dd5ff9f5a5d7aee585fd8e15d7a137768d8274c91e3560",
                "sha256:0fe94b3f607c0fc7df6df454dec077a9a7787e7954e7e289d309ef59d5f07dd8",
                "sha256:7a10575955948ff382b2fe99da7f4fe1ce735b670eda1ed6b130f591dba15e1a",
                "sha256:a7cc69f17f22e921ec2ed3f26be09926e4627ea88b42808b0e95a6f7c7b505f5",
                "sha256:ddf61ac2972e2c60911b3e0d1e32ad32c17ae7926accee0f946201607a896ea3",
                "sha256:05195a30e42cb66cc0e5012826723129d3c90e8edb213448d15676b8e529c9e8",
                "sha256:34f8dbe76e1e5e97adab1902906884a79823e538436050a5b8dc3c008103e97b",
                "sha256:af5b8ad66adfe062846a1320479230ad475828dbede048b9ab858b853a336315",
                "sha256:df81fadca23ad2c58359ffa6f0bada625b63dbdf99b0b16dcc0dd1a8c1ab6447",
                "sha256:ae229fa5c6967de8d46ac0e95867d180ab30ec6ee774f0819f3d88cdeb162225",
                "sha256:f7816f2f5ecec81c3bde93d422f9fb283727b24898eb0831c787dcd7bb9b499c",
                "sha256:1f6d459af955adf38b39a8f5747af1d02c7edc4c665d475bbbf3af39eb2bbb44",
                "sha256:2e7e266db21b33d7575e742a5e50ddcb7fda872a07e64167b57050552986ca21",
                "sha256:e8157bac56fa4a79463bedc3b24bfbabc5b9c6a8f55c77c6d33538fc9fbab8c9",
                "sha256:40aa43fff2a1162c54060ed19cc3d6b76c331eef7ba9c9c84b3bb4cb3fdb5c0c",
                "sha256:37949051cc74a57b4231d987f6a53e696cc9659b736db413c33bce53a17cac64",
                "sha256:254f6dffa6bea9bf660c5322e3967316dc814ef25cf9af18007778ccca19f3a1",
                "sha256:28d08b0834f8865130149c2be3fb486e150a690084edc78f355f6934328224f0",
                "sha256:4c46732d9278944167b59dcd8cafb824de09ca9b7b5af82bf9970f70db84a6c8",
                "sha256:658a5f053a6c2dcd163d3f378428a4e5a6fa39983df825a0f50c543fa0802500",
                "sha256:67bad8a6025ed06c7617545d9c98b69cfb8cc2529f74c82ed1a8062b6e35f597",
                "sha256:58b35e3f2fd1221f251a774464fbf58fc773f3d21df6dbef6ccbc7ba9b8930ab",
                "sha256:a1cf8bf644213585fde52abfddbb4df0a115d722da382a212eb18c2f4e11981d",
                "sha256:d8c911985b62b798b2851b089c480831b12d3b7126d5af6abf5830fe8bfdb4b0",
                "sha256:a36c9aa4ce89e1f75294e73627a38b598f8cb419c5365bf90ae07ddfeca6cfd6",
                "sha256:86ddee4a4a4d7acfe7be23cd359a2fa3d3ded41da4369a8cb642e0bc82a867fd",
                "sha256:4fc547e0fbc33af10c116b9b756e310218dde39227701bb8d7be28d6141f76cd",
                "sha256:51031f50df412f085dabb0204a5e900679d9a8616d02bceff9d1e29b8e501ed5",
                "sha256:26c2ad43c398def7dda20ec954dec6909f1c90173c8e1a9a3038ea0543f78072",
                "sha256:c8a418e4c85322b90f5a386d5c44a43e195abe45f576f72ac984718cbb8eeb83",
                "sha256:c80b44d7fec9983bcfb114fde60f15058b53e25858d02e7abe9becde1c17d7ca",
                "sha256:a69ad36fab0009908b5487b5d242909a88cc22b29bd08bd63cbfb0966b49e72f",
                "sha256:9e996fd83536e05b706121885fc816f339689e90e9cfea2234de4992e3acb10f",
                "sha256:112172594e249540713d50a9bc6b05432e35442818bee8a5d695bf7dca8eb962",
                "sha256:98d2954d651246f8402be7b89105f780fa5e9b5ad044f0bf31a53710e6d606fa",
                "sha256:1c08a3aae9ade999674ee49260f08cf4d722b17cfbbc59a4582359984273f7e2",
                "sha256:2ff4a9ea58dd93f96ea6e1470f9bdc929b218eed13594e7e107614cd2b705f36",
                "sha256:c19c67ae2ea863611c8cc9cdb47ea2bcf4e78c884ace84f1b7207f2d67372981",
                "sha256:65da4659a66a831082a7822d4bb750578ea59e42141ac174ad62124f3fea13bd",
                "sha256:749c4a1bb239c53120b19cd5bd25665c3d5be6bad446bc6c3e2b518e7ccaec49",
                "sha256:95c65f574b737d0a0ce9a74808e1650f0f55e6548d79f075e99249da4119e901",
                "sha256:864bf102abb50befa5513e2f9bf4899f34efed6967647c8f6fc44ee621d55731",
                "sha256:b0a65e2b932e78678beacb606c284bb78150ea42f66fe79ce804b49ab66e6fc3",
                "sha256:6dc30e2371c14bb4c24f2cd81ea90ee3ceac6ac567898d07ac968f5b353fbcd2",
                "sha256:326d80f8c33005ad05e17b612f033899167c59cd6df890c4d03bdc88f49b922f",
                "sha256:07e6e4f589e32e6d57b304684acc3c68d3c91c852836b06440fc5c578775c261",
                "sha256:5b67478caa3c4a9043ee20a86a7dc29cdf010e3b44f1d59079821c23f5801e1a",
                "sha256:b990ec05b92b38dda0386483884e722a64068b3c03fa8b8dfdbbfa709c9591fd",
                "sha256:c72fc0045883273fb1acb1122d624ab12e98e9e5c805493a68725acc6dec84d4",
                "sha256:7968d7426633d6d34978f3d5c996a803c31a294e32c0523c01f871018da04bd0",
                "sha256:f84d75f048cf2190a0dc4204a6ce38702dc39be74ae7939676c6f15af618d106",
                "sha256:afb9c352c8798279df867b3ec8dcfe707fba349d1f8111dc984ea6fd7fb46ff0",
                "sha256:273538f720c7b220a1cd1b67c544777eed3ff8f1a058901f761fec166932957f",
                "sha256:494c39a4876103ca1da009b2ed37791f3ab44db31b1a97b275a59e57b794b639",
                "sha256:8852553cd448f065e91b517186dd9f01c2675389abbadebfe781b4bb706a55c5",
                "sha256:134eb551259c233df0b451e6b5e369887e4d636062ab19c003cf2b72a6f2a21c",
                "sha256:8d47030e3e3902430f1baa9bfbf04b1d701163f1a9c01dedbed35a7736ea70c5",
                "sha256:1646ce0f98748b4cedebe0945e989c11cc4ec38b3dd37c917c538d7aac90ca06",
                "sha256:c7c0f42fd1ae45db5e58b32e43f128e5c303a42bdcdfd425a3b73a13ca17e1d5",
                "sha256:ad67c7d10a9452a7314df151da583ed1f52d3bd0538b4f6f7dfb9ed674b814b5",
                "sha256:fad1783671a89f1db4d719a9384096316d9f642b8ab289ba9ba23998391d7c76",
                "sha256:152c20541becb9b8d2f6f642bd2a7afcb1fef9fc2b0ef4ecfca32d695b79ac4a",
                "sha256:cbc117cfb2d0dcad6bce8fbc386790d7e80f915798b92f2a29413f801b5ac3a8",
                "sha256:4fd0d78d2d7b167ed9de4f72460f1344cba5e69c28f490b97817c422f489049b",
                "sha256:fbf9e726aed1c10f50672bd2265cd41362ec3e933ddcd80e24994815d77ff7a8",
                "sha256:174dbebad3fc42e69d2ac65fbcaa7a272c798e577123fc9e21327c276be7d324",
                "sha256:b1b1128410aada6f4682e46d36c8c938d8244f180f66fcde04ae1ede24d47947",
                "sha256:3fa9a5ed1a38bc04572efa63ec693d088ede3328364472187c9bee115310c65e",
                "sha256:9a9f3142dfaf181c1ecabc44cd766bde717ffee818a5bc464dd6b663d46b1fc4",
                "sha256:4729762ba647e4159725f942f09f72c6510fb89a9954e1b0e7f80bacbda823d9",
                "sha256:c1a486630203635b3f81ea2e8611a606bf61f9d869736b1184ed6f5d5135d487",
                "sha256:ced6cf8dbcd53c991d86e87768cbb8083bde14a55e334f555cdb5a093d0d47c1",
                "sha256:94749544927bba86de6724a9811a70a397d23464b4322f2f435745b443213dd5",
                "sha256:1be4021550b2b132300542e8aca9fc86d14d94be215dcb9381d6b23e20af81cc",
                "sha256:0c6b2e177b2b46cbaa1a2bba094491023dc653bad93401b1e452063be08fa074",
                "sha256:89ad94d1935c85f7abfdb99552271a2f5599b48bdcfb548ed1f3c085d5c08989",
                "sha256:dfcb634b01a2ec041db0948084a69e1bf7059b75b832a5c8e3066580804288e8",
                "sha256:2f3001c2a849fd7c02aa92b4a13e6589f0df18cc330dd4fa434fff7af215d930",
                "sha256:184e05778a680c27a70369c552bf8a0e5121d56203c4ec44b21b92db5702e8bc",
                "sha256:53ef9b70d1560a1c2478877c281c3b778e70a2f418c8a546dc57ee9f5bf4cda5",
                "sha256:6edfe7ab77b716eec345f9f9446de3f10e7188361819602855cb726946d27735",
                "sha256:3dcede16bf90fbe98b8994ca0ce820298101e90b3236a3bdeb83937fc6498a2f",
                "sha256:95ce38b88f2684d151ad2f6cf5613b88013866588d24d46bc2320c0a772a3e46",
                "sha256:f72353c3db06b0fc3e284b08083641821c0a1de05a618db60bff623f7765c7fc",
                "sha256:f574f8105dbe4504ed877e633456c5dafbb86728b7bc75fa7f5425e8f26112ff",
                "sha256:fd04bf54f13000097963b43a411988c42d83e70593518a840c2d63e68c2fc0d7",
                "sha256:dd52b12bc073a6aebbb572a3193357d0a08df3a1d64dd4adabd0da2a5cda6143"
            ]
        },
        "Labels": {
            "architecture": "x86_64",
            "build-date": "2021-06-02T19:27:01.978498",
            "com.redhat.build-host": "cpt-1005.osbs.prod.upshift.rdu2.redhat.com",
            "com.redhat.component": "ubi8-container",
            "com.redhat.license_terms": "https://www.redhat.com/en/about/red-hat-end-user-license-agreements#UBI",
            "description": "The Universal Base Image is designed and engineered to be the base layer for all of your containerized applications, middleware and utilities. This base image is freely redistributable, but Red Hat only supports Red Hat technologies through subscriptions for Red Hat products. This image is maintained by Red Hat and updated regularly.",
            "distribution-scope": "public",
            "io.k8s.description": "The Universal Base Image is designed and engineered to be the base layer for all of your containerized applications, middleware and utilities. This base image is freely redistributable, but Red Hat only supports Red Hat technologies through subscriptions for Red Hat products. This image is maintained by Red Hat and updated regularly.",
            "io.k8s.display-name": "Red Hat Universal Base Image 8",
            "io.openshift.expose-services": "",
            "io.openshift.tags": "base rhel8",
            "maintainer": "Red Hat, Inc.",
            "name": "ubi8",
            "release": "203.1622660121",
            "summary": "Provides the latest release of Red Hat Universal Base Image 8.",
            "url": "https://access.redhat.com/containers/#/registry.access.redhat.com/ubi8/images/8.4-203.1622660121",
            "vcs-ref": "ed5adf70c28eb951940c72f4173fa32c4bca2165",
            "vcs-type": "git",
            "vendor": "Red Hat, Inc.",
            "version": "8.4"
        },
        "Annotations": {},
        "ManifestType": "application/vnd.docker.distribution.manifest.v2+json",
        "User": "cecuser",
        "History": [
            {
                "created": "2021-06-02T19:27:14.157244927Z",
                "comment": "Imported from -"
            },
            {
                "created": "2021-06-02T19:27:22.256235Z"
            },
            {
                "created": "2021-06-23T23:08:53.479885189Z",
                "created_by": "/bin/sh -c yum install -y libstdc++.x86_64  && yum install -y libstdc++.i686  && yum install -y openssh-clients.x86_64  && useradd -u 9087 cecuser  && mkdir -p /classic/zos  && mkdir -p /classic/bin  && mkdir -p /classic/lib  && mkdir -p /classic/shell  && mkdir -p /classic/icu/linux/lib/  && mkdir -p /classic/usr/scripts  && mkdir -p /classic/usr/input  && mkdir -p /classic/usr/output  && chown -R cecuser:cecuser /classic"
            },
            {
                "created": "2021-06-23T23:08:53.776960667Z",
                "created_by": "/bin/sh -c #(nop)  USER cecuser",
                "empty_layer": true
            },
            {
                "created": "2021-06-23T23:08:53.999990386Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:f627fa4dad6162dba4c3007f0bae4ef8225c4efccac3f6c0080497c26e2bc1f0 in /classic/bin/caccatut "
            },
            {
                "created": "2021-06-23T23:08:54.209359819Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:eda47d82aa8d203a8ed3fe3ae7deceb02c91375b6c01dbeeb69ebba62f0c1ea5 in /classic/bin/cacshell "
            },
            {
                "created": "2021-06-23T23:08:54.409149086Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:dbd79b541602af8d046cffcf05c9bd2c5e173de3c701df91449431f577fb0d0c in /classic/bin/cacplog "
            },
            {
                "created": "2021-06-23T23:08:54.611460779Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:cb26f2bbb4582a8c0398803186587c557119ddd24cc3e4ccf8b22de124babec7 in /classic/bin/caccfgut "
            },
            {
                "created": "2021-06-23T23:08:54.822068785Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:6088d5ac9f9342f0f01f960bdcdc4e1b1f921c1ca441b1438f329491587b85b6 in /classic/bin/cacmeta "
            },
            {
                "created": "2021-06-23T23:08:55.019483194Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:536a3480cfe4be5c13ed14c86e0f7c55f20a0858a720227a6f59e0daa93a7539 in /classic/bin/clisamp "
            },
            {
                "created": "2021-06-23T23:08:55.219275899Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:bb7eb493cad6ad939ff683c2c018f2bcb91e574b8671531c905895851cfe66c6 in /classic/shell/cacmeta.sh "
            },
            {
                "created": "2021-06-23T23:08:55.420106334Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:11c1ab5548038e1505e2d07d0e04a613ccfa42f54cec15a5e30e395abfe51e11 in /classic/shell/cacplog.sh "
            },
            {
                "created": "2021-06-23T23:08:55.625288642Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:8b404b4a8436e6f8b4a0cb3a5233c1ac5f5a8097f86060a45221673e15bb0d3d in /classic/shell/chcclp.sh "
            },
            {
                "created": "2021-06-23T23:08:55.839292817Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:3ec212d3a153e5b0f932c164441d549b0298a7fa1fe1123c9195c231a83065c9 in /classic/shell/cac.ini "
            },
            {
                "created": "2021-06-23T23:08:56.049423899Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:3a47e112112d3cbc4fcf41b9dbd483aef026decf116225da48f82c656833f518 in /classic/shell/StartCacShell.sh "
            },
            {
                "created": "2021-06-23T23:08:56.2616462Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:7beca33c5882fdbba32edacc007ce9fa441a8e6f4e2d4bd883c174705613610c in /classic/shell/INITIAL.CONFIG.IMPORT.TXT "
            },
            {
                "created": "2021-06-23T23:08:56.460274757Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:33388494b6dfadb1bc7a8ede557109256c3fee9be461b1e54082f65aa0a85495 in /classic/shell/vsamcat/vsamcat_init.txt "
            },
            {
                "created": "2021-06-23T23:08:56.657929473Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:9759617bfd80b1d7c7ea30414ff713f9c3b9f939d02aaee8d4baab18b3271948 in /classic/shell/IVPEmployee1.grammar "
            },
            {
                "created": "2021-06-23T23:08:56.877387074Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:523dd14ea55769e4a9dae1f738cd219280be5d99c137b88ebfe5a2d8532c47b8 in /classic/shell/zOS.LOADR.TRS "
            },
            {
                "created": "2021-06-23T23:08:57.095595736Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:7e72331769aa4748706a50c9d31f5849f9601a1c6c5823515d77be28fa75c4ab in /classic/shell/zOS.MSGS.TRS "
            },
            {
                "created": "2021-06-23T23:08:57.303581716Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:a97788dbc09bf359f9b414c3875729d8353c256c870ca30bd37f0b95388a7852 in /classic/shell/zOS.RMTLRSV.CACCFGD.TRS "
            },
            {
                "created": "2021-06-23T23:08:57.506146249Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:d742a2babc17b9651a4f616d13746e36e423b86156f2187131114721f7e5a556 in /classic/shell/zOS.RMTLRSV.CACCFGX.TRS "
            },
            {
                "created": "2021-06-23T23:08:57.703669294Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:521d7ac0f8ec81ab0991882cef01dc297a9f0a773162269d1956cee8a58c4e8b in /classic/shell/zOS.RMTLRSV.ALLTYP01.TRS "
            },
            {
                "created": "2021-06-23T23:08:57.911159848Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:758748515dbd2029a95145652047014fba84cc51b0a0adf13e834b713f06657f in /classic/shell/zOS.RMTLRS.SCACSAMP.TRS "
            },
            {
                "created": "2021-06-23T23:08:58.115315351Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:bb7eb493cad6ad939ff683c2c018f2bcb91e574b8671531c905895851cfe66c6 in /classic/usr/scripts/cacmeta.sh "
            },
            {
                "created": "2021-06-23T23:08:58.320775708Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:11c1ab5548038e1505e2d07d0e04a613ccfa42f54cec15a5e30e395abfe51e11 in /classic/usr/scripts/cacplog.sh "
            },
            {
                "created": "2021-06-23T23:08:58.517262375Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:8b404b4a8436e6f8b4a0cb3a5233c1ac5f5a8097f86060a45221673e15bb0d3d in /classic/usr/scripts/chcclp.sh "
            },
            {
                "created": "2021-06-23T23:08:58.719429598Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:3ec212d3a153e5b0f932c164441d549b0298a7fa1fe1123c9195c231a83065c9 in /classic/usr/scripts/cac.ini "
            },
            {
                "created": "2021-06-23T23:08:58.925604392Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:3a47e112112d3cbc4fcf41b9dbd483aef026decf116225da48f82c656833f518 in /classic/usr/scripts/StartCacShell.sh "
            },
            {
                "created": "2021-06-23T23:08:59.125673407Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:7beca33c5882fdbba32edacc007ce9fa441a8e6f4e2d4bd883c174705613610c in /classic/usr/scripts/INITIAL.CONFIG.IMPORT.TXT "
            },
            {
                "created": "2021-06-23T23:08:59.338947953Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:33388494b6dfadb1bc7a8ede557109256c3fee9be461b1e54082f65aa0a85495 in /classic/usr/scripts/vsamcat_init.txt "
            },
            {
                "created": "2021-06-23T23:08:59.532996841Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:9759617bfd80b1d7c7ea30414ff713f9c3b9f939d02aaee8d4baab18b3271948 in /classic/usr/scripts/IVPEmployee1.grammar "
            },
            {
                "created": "2021-06-23T23:08:59.748921951Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:523dd14ea55769e4a9dae1f738cd219280be5d99c137b88ebfe5a2d8532c47b8 in /classic/zos/zOS.LOADR.TRS "
            },
            {
                "created": "2021-06-23T23:08:59.968258224Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:7e72331769aa4748706a50c9d31f5849f9601a1c6c5823515d77be28fa75c4ab in /classic/zos/zOS.MSGS.TRS "
            },
            {
                "created": "2021-06-23T23:09:00.182278415Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:a97788dbc09bf359f9b414c3875729d8353c256c870ca30bd37f0b95388a7852 in /classic/zos/zOS.RMTLRSV.CACCFGD.TRS "
            },
            {
                "created": "2021-06-23T23:09:00.380932316Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:d742a2babc17b9651a4f616d13746e36e423b86156f2187131114721f7e5a556 in /classic/zos/zOS.RMTLRSV.CACCFGX.TRS "
            },
            {
                "created": "2021-06-23T23:09:00.586061512Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:521d7ac0f8ec81ab0991882cef01dc297a9f0a773162269d1956cee8a58c4e8b in /classic/zos/zOS.RMTLRSV.ALLTYP01.TRS "
            },
            {
                "created": "2021-06-23T23:09:00.792730161Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:758748515dbd2029a95145652047014fba84cc51b0a0adf13e834b713f06657f in /classic/zos/zOS.RMTLRS.SCACSAMP.TRS "
            },
            {
                "created": "2021-06-23T23:09:01.003610429Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:3ed4d196819068561ab9602a92746c81f6e1fe39a5ffab49a54249c123f856c9 in /classic/lib/CACCAT "
            },
            {
                "created": "2021-06-23T23:09:01.208983988Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:522cdd0a7e6985a926345fbe64facf2691a1d7f0da11b29f273420f2c1d49ee3 in /classic/lib/CACCFG "
            },
            {
                "created": "2021-06-23T23:09:01.406041091Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:529bf19e32f705fd25f04cd15f6203f8130e1bde196307c47db04acf09c107f7 in /classic/lib/CACINIT "
            },
            {
                "created": "2021-06-23T23:09:01.613886554Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:7585736b4d0903b3e4de55949722aa4b9f75a8e90e240f2749d63a47d98cc554 in /classic/lib/CACLCL "
            },
            {
                "created": "2021-06-23T23:09:01.811806324Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:49166b4ffa2c866782106e07f03c5b91efabf56f8a53a670c4102a4ca9b15a0f in /classic/lib/CACLOG "
            },
            {
                "created": "2021-06-23T23:09:02.02013791Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:3fe5ed6111a98537fe0e55fe657f6924250e5ad661eb97bf0ff0e2ca2bf5c629 in /classic/lib/CACOPER "
            },
            {
                "created": "2021-06-23T23:09:02.227455288Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:7878c18d85c64a040b2ee568375110b6d24d83de8ba6ce0f95587d5110583f07 in /classic/lib/CACQP "
            },
            {
                "created": "2021-06-23T23:09:02.428258596Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:74b1974cfd78e533e99adafaef3df85257b1905184ceafb6282d37aed30486aa in /classic/lib/CACSKT "
            },
            {
                "created": "2021-06-23T23:09:02.638167331Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:35fbae23367543cfed80428e481837012b17bc82bc977c46f8580c7c6a24ce06 in /classic/lib/CACSLS "
            },
            {
                "created": "2021-06-23T23:09:02.842451399Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:b2a0879a597e5a9288b705c154bc1f38cf417179d887b230babfd6ae6aae197c in /classic/lib/CECCAP "
            },
            {
                "created": "2021-06-23T23:09:03.050592277Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:e360c849fe641706c99ddebf6fcd3aa21dd998608b49c2d721002a189055fd6b in /classic/lib/CECCSIMS "
            },
            {
                "created": "2021-06-23T23:09:03.2553857Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:b9f8274f33242d068954e9c41433edd9ba16108c7b40bfb85e0d1e357e9225e4 in /classic/lib/CECCSVSM "
            },
            {
                "created": "2021-06-23T23:09:03.450665209Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:d69ca17b0b0657c7c82b087670e22868c0fe11554338c4589b15a42c3c2a7ca4 in /classic/lib/CECCREP0 "
            },
            {
                "created": "2021-06-23T23:09:03.653990374Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:fb531d79f392b1f117d808fa0817fb2497db7e640f265daa254ae21fb46769ea in /classic/lib/CECCREPN "
            },
            {
                "created": "2021-06-23T23:09:03.859782522Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:a5a8c71c65e77943f6d2251c9ce1abd7ca2252347ffedf8efc49a1c44e00c372 in /classic/lib/CECMAA "
            },
            {
                "created": "2021-06-23T23:09:04.076273404Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:80971f3bf17e4ba9f601f12400b9d637cb08b0a506189515d52f565a34d31ee5 in /classic/lib/CECPAA "
            },
            {
                "created": "2021-06-23T23:09:04.283544551Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:70ff07713333dc8393333b1962dcbfe76b480efd0d681d77fd59f4604e93523f in /classic/lib/CECT1VSM "
            },
            {
                "created": "2021-06-23T23:09:04.486284574Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:ee6c030712808337f80a6ab6815f4673913737c07fcb62ec6b1f0e058522bf9f in /classic/lib/CECT2CDC "
            },
            {
                "created": "2021-06-23T23:09:04.692487121Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:641eb61fb509bfc07b754b2e1961257d6d77869390b928177d9de21a2817acf8 in /classic/lib/libcacblink.so "
            },
            {
                "created": "2021-06-23T23:09:04.899111493Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:d8b05ee6f7dbf0c764b290e424abc756cee7361ed4b659797ab82d10251911e3 in /classic/lib/libcaccat.so "
            },
            {
                "created": "2021-06-23T23:09:05.123146181Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:568ff2ccf8f1b60470fb8e216b4a955d24538557c914a8291da814ebecb9f8c6 in /classic/lib/libcacexec.so "
            },
            {
                "created": "2021-06-23T23:09:05.340663921Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:a3c21f6a6bb5c108ae39bead52138828f967e59a8ac704bbcd089ed13fc39e51 in /classic/lib/libcacparse.so "
            },
            {
                "created": "2021-06-23T23:09:05.562629386Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:bfc7cb69217d0d5f4f2dd3d8d0b497b2f897e159d9f60fd39d79e0b6f8e8a9f6 in /classic/lib/libcacsqlcli.so "
            },
            {
                "created": "2021-06-23T23:09:05.792289181Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:79552c57fbdca2bca975e7a084a881e888c413d1d89d70ce9e03aac8cf329b68 in /classic/lib/libcacvhs.so "
            },
            {
                "created": "2021-06-23T23:09:06.006922969Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:199d8de4d8104b44a3ecc2ffc61349974c5fed9e87b5ec60e93b013a2fcb6584 in /classic/lib/libcecrepl.so "
            },
            {
                "created": "2021-06-23T23:09:06.227338312Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:cbc12746fbbc10d690f4df2ac0d65dc7934bc9a4124ecdb29a70d99ce2652dcf in /classic/lib/libcect0roc.so "
            },
            {
                "created": "2021-06-23T23:09:06.450989339Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:1f8a9247b5acf6aa096cf23a65d1940fdf0efca9fb31d8dcab3fdc9b7a7f5fe1 in /classic/lib/libcect0uor.so "
            },
            {
                "created": "2021-06-23T23:09:06.678748713Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:ca9d5d1c280d14fbf5782797f5a4a03ce516cc943da0e429cc708a66ca916371 in /classic/lib/cacmsg_us_EN.cat "
            },
            {
                "created": "2021-06-23T23:09:06.870200962Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:2d3c3c25f5e76ff6085352496ba14446c6ef6baf1531b162080ba1e4a174a4a0 in /classic/icu/linux/lib/readme.txt "
            },
            {
                "created": "2021-06-23T23:09:07.090814492Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:3ae225713d2a4869ebae2b2db0df97d19d166bcfa2e29eba7a6ebd17de32b838 in /classic/icu/linux/lib/libicuucCEC.so.44.0 "
            },
            {
                "created": "2021-06-23T23:09:07.405203256Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:0516193af34c7430e24969ec547326586d46b3ddbe4e05e21175e6dce1ee46c1 in /classic/icu/linux/lib/libicudataCEC.so.44 "
            },
            {
                "created": "2021-06-23T23:09:07.644302294Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:90ef4f5eed593670ac78de73b6b24319001e3c676b064923496688b5666375bf in /classic/usr/scripts/CreateAlterJCL.sh "
            },
            {
                "created": "2021-06-23T23:09:07.843891253Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:675dadff55cdceb3de6890d37f086acb16de64c0f9b63ed9a159772315be0beb in /classic/usr/scripts/CreateDefineLogstreamJCL.sh "
            },
            {
                "created": "2021-06-23T23:09:08.050622361Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:521e154f47ec0a495b28d033410a191d1b05cf3f77a4d06559af34d22a145d4a in /classic/usr/scripts/DefineVSAMFile.sh "
            },
            {
                "created": "2021-06-23T23:09:08.260366034Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:2b477f9f83dcc875d635e2764b4cae0f7e94c4917c2a077b0b996dc9341b1570 in /classic/usr/scripts/SubmitJobAndGetResult.sh "
            },
            {
                "created": "2021-06-23T23:09:08.522484696Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:05baf384fe1f202b087b1265524f97713bd7bf40ea1b516471ac917f04ddfd2a in /classic/usr/input/ClassicCDCAllocSkeleton.jcl "
            },
            {
                "created": "2021-06-23T23:09:08.787276737Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:6f14f463485c2fd48ca6f612f60c833f4525683959de79c06cf4223166c4bbf2 in /classic/usr/input/ClassicCDCUntrsSkeleton.jcl "
            },
            {
                "created": "2021-06-23T23:09:09.058499755Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:c7ae485e3af800cc07283a69daaf46d81a5a7de9f198bad05c9e4ef0437d49b0 in /classic/usr/input/ClassicCDCCopySkeleton.jcl "
            },
            {
                "created": "2021-06-23T23:09:09.338348083Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:c34dd3089d5f19de126a5dcea69c1fbed74a036e39a74c3ded2e30cbf33d26df in /classic/usr/input/ClassicCDCOutput.jcl "
            },
            {
                "created": "2021-06-23T23:09:09.602720293Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:f9498830cc2b42ae3a8070bfd958d92e63a0e4008cc5f3146063535e1dce1031 in /classic/usr/input/ClassicCDCAPFSkeleton.jcl "
            },
            {
                "created": "2021-06-23T23:09:09.866489046Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:3cdd5339d8c9ace4026f51511c081bf55ceb57915fc61bc7cdf5b628df7bf6e9 in /classic/usr/input/ClassicCDCServerSkeleton.jcl "
            },
            {
                "created": "2021-06-23T23:09:10.138134991Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:0d132f424ef3048c1abf6fbb79d93d590b590472d54a84134296b24dc8236a4a in /classic/usr/input/ClassicCDCCreateSLSLogs.jcl "
            },
            {
                "created": "2021-06-23T23:09:10.430761293Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:4f44bb0d77f7889ec77272d4c41dbb66bdaefb12944ca5d18a22ba99b322c947 in /classic/usr/input/ClassicCDCConfigSkeleton.jcl "
            },
            {
                "created": "2021-06-23T23:09:10.697442113Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:d7c5647d40b0162f8e981a0d6be7e5d5c3b2e5fab14715cb20d6647751da0fbc in /classic/usr/input/ClassicCDCStopSkeleton.jcl "
            },
            {
                "created": "2021-06-23T23:09:10.962949091Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:412606b163a3862c938e3005ef927e7d1f224ee38fdedf02dec28db24cf8cc79 in /classic/usr/input/ClassicCDCGetServerLog.jcl "
            },
            {
                "created": "2021-06-23T23:09:11.232573287Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:2352de3ea55e5360222d5b1e136c4f564465225d40fd7bbb730dff5a6aeb89fb in /classic/usr/input/chcclp_IVP_Input.txt "
            },
            {
                "created": "2021-06-23T23:09:11.502153067Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:6515ba81a1df3e0555d5dbcc8b56d0ac370069f3691d86a8bba3007d10bfb1a1 in /classic/usr/input/EMPLOYEE.sql "
            },
            {
                "created": "2021-06-23T23:09:11.79793237Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:00b4295bd828287cab41bc995dde3b0d7fb07c297d932e25cf11476cd10280c9 in /classic/usr/scripts/ClassicInstallAndMaintenanceMenu.sh "
            },
            {
                "created": "2021-06-23T23:09:12.078950104Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:fc4dba9fd4658ccc64b1660a04dfbdecfcbcd1c8224b183f8c6c63a2072075ee in /classic/usr/scripts/DefineJobCard.sh "
            },
            {
                "created": "2021-06-23T23:09:12.334328952Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:8b089730fe11461d14d82f048b183dd88a2abe48bfbdd8ce4b714df00328a25f in /classic/usr/scripts/SubmitInstallJobs.sh "
            },
            {
                "created": "2021-06-23T23:09:12.611318375Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:d557b9cb5dc831b835ac37429348d76136d02365d582210b1003f5f48da7fc6f in /classic/usr/scripts/DefineHLQ.sh "
            },
            {
                "created": "2021-06-23T23:09:12.86976842Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:12cfaac74dcd2034bf0fc2a66c8a7100d64d3c1bba35aa9ae3674e0797060605 in /classic/usr/scripts/DefinePath.sh "
            },
            {
                "created": "2021-06-23T23:09:13.138840172Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:2a2ac890f2c89ea2d8b5853c2ca65ca4c00d51cbc8a7c7e6dc7461fc8a666aea in /classic/usr/scripts/DefineLogStreamHLQ.sh "
            },
            {
                "created": "2021-06-23T23:09:13.404992705Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:b4f382d5623743671a2ab1db55e803ac1e59c997085e3102e1435c8a7c5e593c in /classic/usr/scripts/StartzOSLogReader.sh "
            },
            {
                "created": "2021-06-23T23:09:13.669735257Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:d8a0f7a5ce25ed777a9d336cc142d9a5d3b9be71b1100bd2ac3a3b4f00a68764 in /classic/usr/scripts/StopzOSLogReader.sh "
            },
            {
                "created": "2021-06-23T23:09:13.929383086Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:1ca2b9d387179c6bb24d595c5e48721f7ff059e31de61548582748fe922e91a3 in /classic/usr/scripts/DefineVSAMIVP.sh "
            },
            {
                "created": "2021-06-23T23:09:14.181693093Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:248c1e725b2e23c35769782e4fd16d923128abf114f00595d3828ec0e765a346 in /classic/usr/scripts/GetzOSLogs.sh "
            },
            {
                "created": "2021-06-23T23:09:14.476865251Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:4641f847371068866a32ab784a0b9eebb576d46e2f2324d0f2543b4c76b8fc4a in /classic/usr/scripts/UpdateScripts.sh "
            },
            {
                "created": "2021-06-23T23:09:14.739406367Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserfile:3ae56e9a38c1678935af979fd15f26025b4c3c66abf906b4396ba1b40d0d8eb0 in /classic/usr/scripts/GetDiagnostics.sh "
            },
            {
                "created": "2021-06-23T23:09:18.081840283Z",
                "created_by": "/bin/sh -c #(nop) COPY --chown=cecuser:cecuserdir:c44fcc47b2379efe3a78e7432f02b6fcba8c30ddaa5f0b4508cf02c914189583 in /classic/bin/AccessServer/ "
            },
            {
                "created": "2021-06-23T23:09:19.379456322Z",
                "created_by": "/bin/sh -c #(nop) WORKDIR /classic/shell",
                "empty_layer": true
            },
            {
                "created": "2021-06-23T23:09:19.771073948Z",
                "created_by": "/bin/sh -c #(nop)  ENV PATH=./:../bin:/classic/shell:/classic/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "empty_layer": true
            },
            {
                "created": "2021-06-23T23:09:20.140306132Z",
                "created_by": "/bin/sh -c #(nop)  ENV LD_LIBRARY_PATH=../lib:./:../icu/linux/lib:/classic/lib:/classic/icu/linux/lib",
                "empty_layer": true
            },
            {
                "created": "2021-06-23T23:09:20.510328356Z",
                "created_by": "/bin/sh -c #(nop)  CMD [\"/bin/sh\" \"-c\" \"./StartCacShell.sh\"]",
                "empty_layer": true
            }
        ]
    }
]

コンテナ実行ユーザー作成

参考: Non-root user login

コンテナ実行用に、UID:9087 のユーザーを作成する必要があります。
マニュアルにならって、UID指定でcecuserというユーザーを作成してパスワードを設定しておきます。

[root@test12 /Inst_Image/CDC/VSAMRemoteSource]# useradd -u 9087 cecuser

[root@test12 /Inst_Image/CDC/VSAMRemoteSource]# id cecuser
uid=9087(cecuser) gid=9087(cecuser) groups=9087(cecuser)

[root@test12 /Inst_Image/CDC/VSAMRemoteSource]# passwd cecuser
ユーザー cecuser のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

Volume用ディレクトリの作成

参考:
Container system requirements - storage
Setting up the container environment

コンテナからVolumeとして使用するディレクトリを作成しておきます。
ここでは、cecuserのホーム以下に作成することにします。
ここだけcecuserにスイッチしてディレクトリ作成します。

[root@test12 ~]# su - cecuser
[cecuser@test12 ~]$ pwd
/home/cecuser
[cecuser@test12 ~]$ mkdir -p classic/docker/volumes/classiccdc
[cecuser@test12 ~]$ mkdir -p classic/docker/volumes/classiccdcvsamcat
[cecuser@test12 ~]$ mkdir -p classic/docker/volumes/classiccdcoutput
[cecuser@test12 ~]$ chmod -R 755 classic
[cecuser@test12 ~]$ ls -la
合計 24
drwx------.  5 cecuser cecuser 156  7月 30 21:20 .
drwxr-xr-x. 15 root    root    203  7月 30 21:05 ..
-rw-------.  1 cecuser cecuser  16  7月 30 21:19 .bash_history
-rw-r--r--.  1 cecuser cecuser  18  8月 30  2019 .bash_logout
-rw-r--r--.  1 cecuser cecuser 141  8月 30  2019 .bash_profile
-rw-r--r--.  1 cecuser cecuser 312  8月 30  2019 .bashrc
drwx------.  2 cecuser cecuser   6  7月 30 21:19 .cache
-rw-r--r--.  1 cecuser cecuser 172  2月  6  2020 .kshrc
drwxr-xr-x.  4 cecuser cecuser  39 10月 15  2020 .mozilla
-rw-r--r--.  1 cecuser cecuser 658  3月  3  2020 .zshrc
drwxr-xr-x.  3 cecuser cecuser  20  7月 30 21:20 classic

Volume作成

参考: Setting up the container environment

マニュアルの手順ではdockerを使用する例が記載されていますが、ここではpodmanを使用しています。
今回使用するVSAM Remote Sourceのdockerイメージでは、先に作成したディレクトリをコンテナ上の以下の3つのディレクトリから永続ボリュームとして使用することになります。それぞれ、カッコ内で示したホストOS上のディレクトリにマッピングします。

  • /classic/shell (=> /home/cecuser/classic/docker/volumes/classiccdc)
  • /classic/shell/vsamcat (=> /home/cecuser/classic/docker/volumes/classiccdcvsamcat)
  • /classic/usr/output (=> /home/cecuser/classic/docker/volumes/classiccdcoutput)

マニュアル手順ではdocker run のオプションでこれらマウントの指定をしていますが、podmanだと同様のオプションが無いようなので、volumeの作成は個別に行うことにします。
参考:
podman-volume-create - Create a new volume
docker - ボリュームの利用

以下のvolume作成用のスクリプトを作成します。

create_volume.sh
#!/bin/bash

podman volume create -o type=none -o o=bind -o device=/home/cecuser/classic/docker/volumes/classiccdc classiccdc
podman volume create -o type=none -o o=bind -o device=/home/cecuser/classic/docker/volumes/classiccdcvsamcat classiccdcvsamcat
podman volume create -o type=none -o o=bind -o device=/home/cecuser/classic/docker/volumes/classiccdcoutput classiccdcoutput

実行

[root@test12 ~]# ./create_volume.sh
classiccdc
classiccdcvsamcat
classiccdcoutput

確認

[root@test12 ~]# podman volume ls
DRIVER   VOLUME NAME
local    09fb630bada25cb13a72d4aa8690b26358893158f29be4e006888f2a8cc79d97
local    classiccdc
local    classiccdcoutput
local    classiccdcvsamcat

[root@test12 ~]# podman volume inspect classiccdc
[
     {
          "Name": "classiccdc",
          "Driver": "local",
          "Mountpoint": "/var/lib/containers/storage/volumes/classiccdc/_data",
          "CreatedAt": "2021-08-01T15:02:28.212604512+09:00",
          "Labels": {

          },
          "Scope": "local",
          "Options": {
               "device": "/home/cecuser/classic/docker/volumes/classiccdc",
               "o": "bind",
               "type": "none"
          }
     }
]

コンテナ作成

参考: Setting up the container environment

上に示されているコンテナ作成用コマンドをスクリプトにしておきます。また、ここでもPodman用にオプション変更します。

create_container.sh
#!/bin/bash

podman run -itd \
-e TZ=Asia/Tokyo \
-e CLASSIC_DATASOURCE=RHELSAMP \
-e CLASSIC_REMOTE_HOSTNAME=169.xx.xx.xx \
-e CLASSIC_REMOTE_PORT=30087 \
-e ZOSCODEPAGE=1399 \
-e DBCSCODEPAGE=16684 \
-e COMPUTERNAME=test12 \
-u cecuser \
-p 9087:9087 \
-v classiccdc:/classic/shell:exec \
-v classiccdcvsamcat:/classic/shell/vsamcat:exec \
-v classiccdcoutput:/classic/usr/output:exec \
--add-host test12:10.0.2.15 \
--add-host raijin:9.xx.xx.xx \
--add-host eplex1:9.xx.xx.xx \
--name ClassicCDCVSAM \
classiccdc:latest

※コンテナ上の/classic/shell以下には元々スクリプトが提供されていてコンテナ起動時にはその配下のスクリプトが実行されるようになっています。今回マウントのオプションとしてbindを指定しているので元々マウントポイント下に提供されているファイルも参照できるようです。ただ、最初試した時はvolumeのマウントがデフォルトではnoexecオプション付きでマウントされてしまっていて、スクリプトの実行がPermission Deniedになってしまいました。そのため、podman run -vオプションの第3引数で明示的にexecオプションを指定しています。

※コードページに関連するパラメータはZOSCODEPAGE、DBCSCODEPAGEの2つがあります。前者はMixed Field(SBCS, DBCS混在)用、後者はDBCS Field(Graphic)用に使われるものです。両者を個別に設定する必要があるケースは初めて見たのですが、IIDRの設定としてはそうなっているようです(普通、例えば1399指定すればSBCS, DBCS両方含まれるのでDBCSだけ別に指定する必要はないはずですが...)。ここでは、ZOSCODEPAGE=1399DBCSCODEPAGE=16684を指定しています。
参考:
Code page requirements
ZOSCODEPAGE
DBCSCODEPAGE
なお、DBCS関連のCCSIDについては以下も参照のこと。
参考: Double-byte EBCDIC coded character set identifiers (CCSIDs)

※コンテナ内からホスト名解決できるように、--add-hostオプションでホスト名とIPアドレスのマッピングを指定したのですが、結果的にはこれはうまく機能しませんでした。コンテナ内からcurlコマンドなどではホスト名解決できることは確認できたのですが、VSAM Remote Sourceからアクセスする際はなぜかホスト名解決できないようです。なので--add-host指定は実質意味なしです。

※レプリケーション対象となるz/OS上のLog Readerの宛先(IPアドレス+ポート)はこのコンテナ作成時の環境変数(CLASSIC_REMOTE_HOSTNAME, CLASSIC_REMOTE_PORT)で指定します。つまり、このコンテナとLog Readerは1:1で紐づくことになります。従って、対象のLog Readerが複数ある場合はそれぞれに対してコンテナを用意する必要があります。

上のスクリプトを実行してコンテナ作成&実行します。

[root@test12 ~]# ./create_container.sh
e0289065f5ba8c8bd79f86560b69658b1551884e09fbded0d8d1e6d75653225c

確認

[root@test12 ~]# podman ps
CONTAINER ID  IMAGE                        COMMAND               CREATED        STATUS            PORTS                   NAMES
e0289065f5ba  localhost/classiccdc:latest  /bin/sh -c ./Star...  6 seconds ago  Up 5 seconds ago  0.0.0.0:9087->9087/tcp  ClassicCDCVSAM

[root@test12 ~]# netstat -an | grep 9087
tcp        0      0 0.0.0.0:9087            0.0.0.0:*               LISTEN

ClassicCDCVSAMという名前付きでコンテナ作成しているので、今後は以下のコマンドで起動/停止が可能。
起動: podman start ClassicCDCVSAM
停止: podman stop ClassicCDCVSAM

稼働確認

参考: Verifying the VSAM Remote Source installation

コンテナを稼働させて中を見てみます。

[root@test12 ~]# podman exec -it --workdir /classic/usr/scripts  ClassicCDCVSAM bash
[cecuser@e0289065f5ba scripts]$ ls
ClassicInstallAndMaintenanceMenu.sh  DefineJobCard.sh       DefineVSAMIVP.sh           IVPEmployee1.grammar  SubmitInstallJobs.sh      cacmeta.sh
CreateAlterJCL.sh                    DefineLogStreamHLQ.sh  GetDiagnostics.sh          StartCacShell.sh      SubmitJobAndGetResult.sh  cacplog.sh
CreateDefineLogstreamJCL.sh          DefinePath.sh          GetzOSLogs.sh              StartzOSLogReader.sh  UpdateScripts.sh          chcclp.sh
DefineHLQ.sh                         DefineVSAMFile.sh      INITIAL.CONFIG.IMPORT.TXT  StopzOSLogReader.sh   cac.ini                   vsamcat_init.txt

ここではVSAM Remote Sourceの管理用スクリプトが動くところまで確認しておきます。(IVPはまだやらない)

[cecuser@e0289065f5ba scripts]$ ./ClassicInstallAndMaintenanceMenu.sh
*---------------------------------------------------------------------*
*
* IBM Data Replication VSAM for z/OS Remote Source, V11.4
* PID: 5737-C30
*
* Menu options:
*    1.  Set the job card
*    2.  Set the z/OS High Level Qualifier (HLQ)
*    3.  Set the z/OS Unix System Services (USS) path
*    4.  Install or replace z/OS libraries with this container's maintenance level
*    5.  Start a new z/OS log reader
*    6.  Stop the existing z/OS log reader
*    7.  Get diagnostic log for the existing z/OS log reader
*    8.  Configure a z/OS VSAM cluster for the container environment
*    9.  Configure VSAM IVP file
*   10.  Update container scripts from the current image
*   11.  Generate diagnostics tar
*   99.  Exit this script
*
*---------------------------------------------------------------------*
Select an option: 99
[cecuser@e0289065f5ba scripts]$ exit
exit

ホスト側OSからコンテナのログを確認すると、以下のようなメッセージが確認できます。コンテナを起動するとLogReaderに接続しにいきますが、この時点ではまだz/OS上に接続先のLogReaderがいない想定なので、接続に失敗するメッセージが出るはずですが、とりあえずここでは無視してOKです。

[root@test12 ~]# podman logs -f ClassicCDCVSAM
...
2021-09-14-17.34.26.140441 CECC0213E The source server received an unexpected disconnect from the log reader service LRSV.
2021-09-14-17.34.28.271418 CECC0220E The source server failed to create the control queue TCP/CONTROL/DA500BBC6150B000.
2021-09-14-17.35.07.502178 CACA0120I SERVER RUNNING WITH MODE: <0>
2021-09-14-17.35.07.535762 CAC00105I Memory requested 268435456, Memory obtained 268433624
2021-09-14-17.35.07.539532 CAC00105I LOG V11.3 Jun 23 2021: STARTED
2021-09-14-17.35.07.541343 CAC00100I CONTROLLER: LOGGING STARTED
2021-09-14-17.35.07.549636 CAC00105I OPERATOR V11.3 Jun 23 2021: STARTED
2021-09-14-17.35.07.549729 CAC00102I CONTROLLER: STARTED CACOPER
2021-09-14-17.35.07.550996 CAC00105I CONNECTION HANDLER V11.3 Jun 23 2021: STARTED
2021-09-14-17.35.07.551094 CAC00102I CONTROLLER: STARTED CACINIT
2021-09-14-17.35.07.552283 CAC00105I QUERY PROCESSOR V11.3 Jun 23 2021: STARTED
2021-09-14-17.35.07.552373 CAC00102I CONTROLLER: STARTED CACQP
2021-09-14-17.35.07.553186 CAC00105I QUERY PROCESSOR V11.3 Jun 23 2021: STARTED
2021-09-14-17.35.07.553269 CAC00102I CONTROLLER: STARTED CACQP
2021-09-14-17.35.07.554044 CAC00105I QUERY PROCESSOR V11.3 Jun 23 2021: STARTED
2021-09-14-17.35.07.554124 CAC00102I CONTROLLER: STARTED CACQP
2021-09-14-17.35.07.554930 CAC00105I QUERY PROCESSOR V11.3 Jun 23 2021: STARTED
2021-09-14-17.35.07.555220 CAC00102I CONTROLLER: STARTED CACQP
2021-09-14-17.35.07.574691 CAC00105I QUERY PROCESSOR V11.3 Jun 23 2021: STARTED
2021-09-14-17.35.07.574829 CAC00102I CONTROLLER: STARTED CACQP
2021-09-14-17.35.07.636877 CAC00102I CONTROLLER: STARTED CECPAA
2021-09-14-17.35.07.636948 CECN0001I Administration service initialization is complete.
2021-09-14-17.35.07.637349 CECN0005I Replication environment summary (source server)
2021-09-14-17.35.07.637487 CECN0007I The source server loaded 0 subscriptions.
2021-09-14-17.35.07.637506 CECN0008I Replication objects loaded: 0
2021-09-14-17.35.07.638350 CECM0020I Network management interface was not defined.
2021-09-14-17.35.07.638421 CECM0001I The monitor service initialization is complete.
2021-09-14-17.35.07.638528 CAC00102I CONTROLLER: STARTED CECMAA
2021-09-14-17.35.07.700811 CAC00105I CECCAP SERVICE V11.3 Jun 23 2021: STARTED
2021-09-14-17.35.07.701174 CAC00102I CONTROLLER: STARTED CECCAP
2021-09-14-17.35.07.701204 CAC00103I DATA SERVER: V11.3 Jun 23 2021 READY
2021-09-14-17.35.09.803637 CECC0220E The source server failed to create the control queue TCP/CONTROL/DA500BE40393C000.
2021-09-14-17.36.11.931645 CECC0220E The source server failed to create the control queue TCP/CONTROL/DA500C1F43EF8000.
2021-09-14-17.37.14.067020 CECC0220E The source server failed to create the control queue TCP/CONTROL/DA500C5A7D942000.
2021-09-14-17.38.16.194242 CECC0220E The source server failed to create the control queue TCP/CONTROL/DA500C95BF572000.
...

約1分おきに自動的に再接続要求が出るようです。後述のLogReaderが起動して接続が確立されると以下のメッセージが出ます。

...
2021-09-14-17.41.20.480592 CECC0200I The source server created the control queue TCP/CONTROL/DA500D477F79C000.
2021-09-14-17.41.20.483375 CECC0001I The source server is active.
2021-09-14-17.41.20.513099 CECC0208I The source server has received a connection from the log reader service LRSV.

ネットワーク構成

REHL上ではfirewalldを稼働させているので、VSAM Remote SourceがListenしているポート9087へのアクセスを許可しておきます。

[root@test12 ~]# firewall-cmd --zone=public --add-port=9087/tcp --permanent
success
[root@test12 ~]# firewall-cmd --reload
success

さらに、このRHELはVirtual Box上で稼働しているので、9087ポートにWindowsからアクセスできるようポートフォワードの設定を追加しておきます。(localの19087 => RHEL上の9087にフォワードするようにしておく)

(4) VSAM Remote Source - z/OS側構成(z/OS Log Reader)

参考: Installing and running the z/OS components manually

事前準備

TSOユーザー: TEST01
HLQ: CEC.V114.REMOTE

CEC用にユーザーカタログ、Aliasを作成しておく。

セットアップ用JCL生成

VSAM Remote Sourceのコンテナに接続し、z/OS側のセットアップを行うためのJCLを生成します。
JCL生成用にClassicInstallAndMaintenanceMenu.shというシェル・スクリプトが提供されているのでこれを使用します。

ClassicInstallAndMaintenanceMenu.shはインタラクティブに必要な値を設定していくインターフェースを提供してくれているので、メニューを順番に辿って操作していきます。

[root@test12 ~]# podman exec -it --workdir /classic/usr/scripts  ClassicCDCVSAM bash
[cecuser@e0289065f5ba scripts]$ ./ClassicInstallAndMaintenanceMenu.sh
*---------------------------------------------------------------------*
*
* IBM Data Replication VSAM for z/OS Remote Source, V11.4
* PID: 5737-C30
*
* Menu options:
*    1.  Set the job card
*    2.  Set the z/OS High Level Qualifier (HLQ)
*    3.  Set the z/OS Unix System Services (USS) path
*    4.  Install or replace z/OS libraries with this container's maintenance level
*    5.  Start a new z/OS log reader
*    6.  Stop the existing z/OS log reader
*    7.  Get diagnostic log for the existing z/OS log reader
*    8.  Configure a z/OS VSAM cluster for the container environment
*    9.  Configure VSAM IVP file
*   10.  Update container scripts from the current image
*   11.  Generate diagnostics tar
*   99.  Exit this script
*
*---------------------------------------------------------------------*
Select an option:

1. Set the job card

このメニューではJOB cardの先頭部分を指定します。スクリプトの指示に従って以下の2行を追加するよう設定します。

//CCDCRLR JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),
// REGION=0M,NOTIFY=&SYSUID
*---------------------------------------------------------------------*
Select an option: 1
*---------------------------------------------------------------------*
*
* Classic CDC for Remote Log Reader Installation and Maintenance
* Define the job card for jobs run to install the remote log reader
*  components
*
* Example:
* //JOB00000 JOB (ACCT),'CLASSIC CDC',
* // NOTIFY=&SYSUID,MSGLEVEL=(1,1),MSGCLASS=A
*
* Note: Job name (8 characters after first '//')  may be replaced
*        when the job is submitted.
* Note: Your job card must conform to site rules (e.g. account).
*
*---------------------------------------------------------------------*
Enter the first line of the job card:
----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
//CCDCRLR  JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),
Do you want to add another job card line? (Y or N)Y
Enter another line for the job card:
----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
// REGION=0M,NOTIFY=&SYSUID
Do you want to add another job card line? (Y or N)N
The job card in file <../output/ClassicCDCJobCard.jcl> is:
//CCDCRLR JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),
// REGION=0M,NOTIFY=&SYSUID
Returning with job card set.

2. Set the z/OS High Level Qualifier (HLQ)

HLQとして CEC.V114.REMOTE を指定します。

*---------------------------------------------------------------------*
Select an option: 2
*---------------------------------------------------------------------*
*
* Classic CDC for Remote Log Reader Installation and Maintenance
* Define the HLQ for jobs run to install the remote log reader
*  components
*
* Example:
*  You provide just the HLQ value as:  CAC.V114.REMOTE
*
*---------------------------------------------------------------------*
Enter the HLQ (e.g. CAC.V114.REMOTE):
----+----1----+----2----+----3----+
CEC.V114.REMOTE
Returning with HLQ set.

3. Set the z/OS Unix System Services (USS) path

Remote log readerのインストール先として、/u/TEST01 を指定します。(TEST01ユーザーのホーム)

*---------------------------------------------------------------------*
Select an option: 3
*---------------------------------------------------------------------*
*
* Classic CDC for Remote Log Reader Installation and Maintenance
* Define the USS path for jobs run to install the remote log reader
*  components
*
* Example:
*  You provide just the path value as:  /u/USER001
*
* Note: Path value is case sensitive.
*
*---------------------------------------------------------------------*
Enter the path (e.g. /u/USER001):
----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
/u/TEST01
Returning with USS path set.

4. Install or replace z/OS libraries with this container's maintenance level

ここでは、z/OS側のライブラリに関する情報を指定していきます。
各項目については以下のように入力します。
最後の設問でYを指定すると、SSH経由でターゲットのz/OSに対してスクリプトを直接実行しにいこうとします。ただ、この時のsshのポート番号はデフォルトの22で決め打ちっぽく変更ができないようです。今回想定している環境は22以外のポートを使用しているのでこの方式は使えません。生成されたスクリプトを個別に転送して実行することにしますので、最後の設問はNにしておきます。

  • Are your CEC.V114.REMOTE.* target libraries SMS-managed? (Y or N) => Y
  • Should this installation process attempt to APF authorize SCACLOAD? (Y or N) => Y
  • Does your z/OS installation use JES2? (Y or N) => Y
  • Will there be multiple z/OS remote log readers running on the same image? (Y or N) => N
  • Enter the z/OS user ID : => TEST01
  • Would you like to perform the z/OS installation now? (Y or N) => N
*---------------------------------------------------------------------*
Select an option: 4
*---------------------------------------------------------------------*
*
* Classic CDC for Remote Log Reader Installation and Maintenance
* Install scripting for Classic CDC remote log reader
*
*---------------------------------------------------------------------*
Are your CEC.V114.REMOTE.* target libraries SMS-managed? (Y or N)Y
Should this installation process attempt to APF authorize SCACLOAD? (Y or N)Y
Does your z/OS installation use JES2? (Y or N)Y
Will there be multiple z/OS remote log readers running on the same image? (Y or N)N
Enter the z/OS user ID      : TEST01
Installation is completed through multiple steps.
For SMS-managed environments, it is your choice whether to complete
  installation with this script or provide JCL to your z/OS team to
  complete the installation.

The steps follow along with the generated JCL:
   Note:  Paths are relative from current working directory:
          /classic/usr/scripts
   1. Allocate z/OS data sets with ../output/InstallRemoteLRS.Alloc.jcl.2021-07-31_16:43:41
   2. Copy terse format files from zFS to z/OS data sets with ../output/InstallRemoteLRS.Copy.jcl.2021-07-31_16:43:41
   3. Unterse and receive into final libraries with ../output/InstallRemoteLRS.Untrs.jcl.2021-07-31_16:43:41
   4. APF authorize the SCACLOAD load library with ../output/APFAuthorize.jcl.2021-07-31_16:43:41
       OR by having your z/OS Systems Programmer run command:
       SETPROG APF,ADD,DSNAME=CEC.V114.REMOTE.SCACLOAD,SMS
      If not SMS-managed substitute SMS with VOL=<volser>
   5. Update the default configuration to use a custom
       diagnostic log stream or z/OS log reader listen port with ../output/UpdateRemoteLRSConfig.jcl.2021-07-31_16:43:41
   6. Submit an IXCMIAPU job to define z/OS System Logger
       log streams with ../output/CreateLogs.jcl.2021-07-31_16:43:41
       This creates two z/OS System Logger DASDONLY log streams:
       - Diagnostic log:      CEC.RMTLRS.CECDIAG
       - IVP replication log: CEC.RMTLRS.CECREPL
      If you do not have authority to create log streams you will need to find
       someone that does to submit the generated JCL file.

This installation process can attempt to complete the z/OS
  installation using SFTP and SSH.
Would you like to perform the z/OS installation now? (Y or N)N
Use the JCL generated to complete the z/OS installation.

z/OS側のセットアップに必要なJCLが、コンテナ上の/classic/usr/output/以下、すなわちホストOS上の/home/cecuser/classic/docker/volumes/classiccdcoutput/以下に出力されます。

5. Start a new z/OS log reader

起動JCLを生成します。
メニューに従って以下の項目を設定します。

  • Enter the z/OS user ID : => TEST01
  • Would you like to start the z/OS address space now? (Y or N) => N

ここも最後の設問をYにすると直接SSH経由で起動するのですが、SSH接続できないのでNを指定します。すると上と同ディレクトリに起動用JCLが生成されます。

*---------------------------------------------------------------------*
Select an option: 5
*---------------------------------------------------------------------*
*
* Classic CDC for Remote Log Reader Installation and Maintenance
* Start z/OS address space for Classic CDC remote log reader
*
*---------------------------------------------------------------------*
ZOS_HLQ is CEC.V114.REMOTE
The Classic CDC for Remote Log Reader address space should
 run as a started task on z/OS that starts during the final
 stages of IPL.
The goal is to have the address space available for the life
 of the z/OS LPAR and automatically restart when z/OS is
 restarted.
In some environments you can choose to run the server as a
 job under your authorization with
 /classic/usr/output/StartServerJob.jcl.2021-07-31_17:01:31

This process can attempt to start the z/OS address space
  using SFTP and SSH.
Enter the z/OS user ID      : TEST01
/classic/usr/output/StartServerJob.jcl.2021-07-31_17:01:31 job name card becomes //TEST01S JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),
Would you like to start the z/OS address space now? (Y or N)N
Use the JCL generated to start the z/OS address space.

一通り完了したので99でメニューを抜けてexitでコンテナからも抜けます。

ホストOS側で出力されたJCLを確認します。

[root@test12 /home/cecuser/classic/docker/volumes/classiccdcoutput]# ls -la
合計 52
drwxr-xr-x. 2 cecuser cecuser 4096  8月  1 15:33 .
drwxr-xr-x. 5 cecuser cecuser   73  7月 30 21:20 ..
-rw-rw-r--. 1 cecuser cecuser 2275  8月  1 15:25 APFAuthorize.jcl.2021-08-01_15:24:43
-rw-rw-r--. 1 cecuser cecuser   76  8月  1 15:23 ClassicCDCJobCard.jcl
-rw-rw-r--. 1 cecuser cecuser   27  8月  1 15:24 ClassicCDCSetHLQ.jcl
-rw-rw-r--. 1 cecuser cecuser   11  8月  1 15:24 ClassicCDCSetLogStreamHLQ.jcl
-rw-rw-r--. 1 cecuser cecuser   24  8月  1 15:24 ClassicCDCSetPath.jcl
-rw-rw-r--. 1 cecuser cecuser 1601  8月  1 15:25 CreateLogs.jcl.2021-08-01_15:24:43
-rw-rw-r--. 1 cecuser cecuser 4157  8月  1 15:25 InstallRemoteLRS.Alloc.jcl.2021-08-01_15:24:43
-rw-rw-r--. 1 cecuser cecuser 2327  8月  1 15:25 InstallRemoteLRS.Copy.jcl.2021-08-01_15:24:43
-rw-rw-r--. 1 cecuser cecuser 3870  8月  1 15:25 InstallRemoteLRS.Untrs.jcl.2021-08-01_15:24:43
-rw-rw-r--. 1 cecuser cecuser 1560  8月  1 15:33 StartServerJob.jcl.2021-08-01_15:33:28
-rw-rw-r--. 1 cecuser cecuser 1734  8月  1 15:25 UpdateRemoteLRSConfig.jcl.2021-08-01_15:24:43

ファイル転送

/home/cecuser/classic/docker/volumes/classiccdcoutputに生成されたJCL、および、/home/cecuser/classic/docker/volumes/classiccdcに提供されるTRSをターゲットのz/OSに転送します。
USS上に、以下のディレクトリを作成し、それぞれにJCL、TRSファイルを転送することにします。
※ここではUSSからJCLも実行する予定のため全てUSS上に転送しました。MVS上で実行するのであればマニュアルの記述に従ってPDSに転送してください。

  • /u/TEST01/VSAMRemoteSource/JCL/
  • /u/TEST01/VSAMRemoteSource/TRS/

JCLはテキストファイルでコード変換が必要ですが、今回使用するz/OSはftpが使えないので、一旦PC上にファイルを持ってきてからzowe cliでz/OSMF経由で転送することにします。
また、タイムスタンプが付いた状態だと扱いにくいので、以下の様にファイル名を変更しておきます。

01_InstallRemoteLRS.Alloc.jcl
02_InstallRemoteLRS.Copy.jcl
03_InstallRemoteLRS.Untrs.jcl
04_APFAuthorize.jcl
05_UpdateRemoteLRSConfig.jcl
06_CreateLogs.jcl
07_StartServerJob.jcl

JCL転送

c:\y\Inst_Image\VSAMRemoteSource\JCL>zowe zos-files upload dir-to-uss . /u/TEST01/VSAMRemoteSource/JCL --zosmf-profile prof_xxx
success: true
from:    c:\y\Inst_Image\VSAMRemoteSource\JCL
to:      /u/TEST01/VSAMRemoteSource/JCL


Directory uploaded successfully.

TRSはバイナリで転送すればよいのでsftpで転送します。

[root@test12 /home/cecuser/classic/docker/volumes/classiccdc]# ls -la | grep TRS
-rw-r--r--. 1 cecuser cecuser 2666496  8月  1 15:24 zOS.LOADR.TRS
-rw-r--r--. 1 cecuser cecuser  394240  8月  1 15:24 zOS.MSGS.TRS
-rw-r--r--. 1 cecuser cecuser  180224  8月  1 15:24 zOS.RMTLRS.SCACSAMP.TRS
-rw-r--r--. 1 cecuser cecuser   29696  8月  1 15:24 zOS.RMTLRSV.ALLTYP01.TRS
-rw-r--r--. 1 cecuser cecuser    2048  8月  1 15:24 zOS.RMTLRSV.CACCFGD.TRS
-rw-r--r--. 1 cecuser cecuser    1024  8月  1 15:24 zOS.RMTLRSV.CACCFGX.TRS

[root@test12 /home/cecuser/classic/docker/volumes/classiccdc]# sftp -P xxx TEST01@xx.xx.xx.xx
TEST01@xx.xx.xx.xx's password:
Connected to TEST01@xx.xx.xx.xx.
sftp> cd VSAMRemoteSource/TRS
sftp> pwd
Remote working directory: /u/TEST01/VSAMRemoteSource/TRS
sftp> mput *TRS
Uploading zOS.LOADR.TRS to /u/TEST01/VSAMRemoteSource/TRS/zOS.LOADR.TRS
zOS.LOADR.TRS                                                                                                                                                                                           100% 2604KB   2.1MB/s   00:01
Uploading zOS.MSGS.TRS to /u/TEST01/VSAMRemoteSource/TRS/zOS.MSGS.TRS
zOS.MSGS.TRS                                                                                                                                                                                            100%  385KB 658.9KB/s   00:00
Uploading zOS.RMTLRS.SCACSAMP.TRS to /u/TEST01/VSAMRemoteSource/TRS/zOS.RMTLRS.SCACSAMP.TRS
zOS.RMTLRS.SCACSAMP.TRS                                                                                                                                                                                 100%  176KB 810.3KB/s   00:00
Uploading zOS.RMTLRSV.ALLTYP01.TRS to /u/TEST01/VSAMRemoteSource/TRS/zOS.RMTLRSV.ALLTYP01.TRS
zOS.RMTLRSV.ALLTYP01.TRS                                                                                                                                                                                100%   29KB 605.0KB/s   00:00
Uploading zOS.RMTLRSV.CACCFGD.TRS to /u/TEST01/VSAMRemoteSource/TRS/zOS.RMTLRSV.CACCFGD.TRS
zOS.RMTLRSV.CACCFGD.TRS                                                                                                                                                                                 100% 2048    67.8KB/s   00:00
Uploading zOS.RMTLRSV.CACCFGX.TRS to /u/TEST01/VSAMRemoteSource/TRS/zOS.RMTLRSV.CACCFGX.TRS
zOS.RMTLRSV.CACCFGX.TRS                                                                                                                                                                                 100% 1024    11.4KB/s   00:00
sftp> quit

USS上に以下のようにファイルが転送されました。

TEST01:/u/TEST01/VSAMRemoteSource: >ls -laR

.:
total 64
drwxrwxrwx   4 TEST01   SYS1        8192 Aug  1 03:16 .
drwxrwxr-x   6 TEST01   SYS1        8192 Aug  1 03:16 ..
drwxrwxrwx   2 TEST01   SYS1        8192 Aug  1 03:36 JCL
drwxrwxrwx   2 TEST01   SYS1        8192 Aug  1 03:45 TRS

./JCL:
total 166
drwxrwxrwx   2 TEST01   SYS1        8192 Aug  1 03:36 .
drwxrwxrwx   4 TEST01   SYS1        8192 Aug  1 03:16 ..
-rw-r--r--   1 TAGUCHI  SYS1        4157 Aug  1 03:36 01_InstallRemoteLRS.Alloc.jcl
-rw-r--r--   1 TAGUCHI  SYS1        2327 Aug  1 03:36 02_InstallRemoteLRS.Copy.jcl
-rw-r--r--   1 TAGUCHI  SYS1        3870 Aug  1 03:36 03_InstallRemoteLRS.Untrs.jcl
-rw-r--r--   1 TAGUCHI  SYS1        2275 Aug  1 03:36 04_APFAuthorize.jcl
-rw-r--r--   1 TAGUCHI  SYS1        1734 Aug  1 03:36 05_UpdateRemoteLRSConfig.jcl
-rw-r--r--   1 TAGUCHI  SYS1        1601 Aug  1 03:36 06_CreateLogs.jcl
-rw-r--r--   1 TAGUCHI  SYS1        1560 Aug  1 03:36 07_StartServerJob.jcl
-rw-r--r--   1 TAGUCHI  SYS1          76 Aug  1 03:36 ClassicCDCJobCard.jcl
-rw-r--r--   1 TAGUCHI  SYS1          27 Aug  1 03:36 ClassicCDCSetHLQ.jcl
-rw-r--r--   1 TAGUCHI  SYS1          11 Aug  1 03:36 ClassicCDCSetLogStreamHLQ.jcl
-rw-r--r--   1 TAGUCHI  SYS1          24 Aug  1 03:36 ClassicCDCSetPath.jcl

./TRS:
total 6528
drwxrwxrwx   2 TEST01   SYS1        8192 Aug  1 03:45 .
drwxrwxrwx   4 TEST01   SYS1        8192 Aug  1 03:16 ..
-rw-r--r--   1 TEST01   SYS1     2666496 Aug  1 03:45 zOS.LOADR.TRS
-rw-r--r--   1 TEST01   SYS1      394240 Aug  1 03:45 zOS.MSGS.TRS
-rw-r--r--   1 TEST01   SYS1      180224 Aug  1 03:45 zOS.RMTLRS.SCACSAMP.TRS
-rw-r--r--   1 TEST01   SYS1       29696 Aug  1 03:45 zOS.RMTLRSV.ALLTYP01.TRS
-rw-r--r--   1 TEST01   SYS1        2048 Aug  1 03:45 zOS.RMTLRSV.CACCFGD.TRS
-rw-r--r--   1 TEST01   SYS1        1024 Aug  1 03:45 zOS.RMTLRSV.CACCFGX.TRS

セットアップ用JCL実行

順番にJCLを実行していきます。

01_InstallRemoteLRS.Alloc.jcl
そのままSubmit
01_InstallRemoteLRS.Alloc.jcl
//TEST011 JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),
// REGION=0M,NOTIFY=&SYSUID
//OUT1     OUTPUT JESDS=ALL,OUTDISP=(HOLD,HOLD)
// SET HLQ=CEC.V114.REMOTE
//*********************************************************************
//*                                                                   *
//*  Licensed Materials - Property of IBM                             *
//*                                                                   *
//*  5737-C30                                                         *
//*                                                                   *
//*  (C) Copyright IBM Corp. 2020, 2020 All Rights Reserved           *
//*                                                                   *
//*  US Government Users Restricted Rights - Use, duplication or      *
//*  disclosure restricted by GSA ADP Schedule contract with          *
//*  IBM Corp.                                                        *
//*                                                                   *
//*********************************************************************
//DELETTRS EXEC PGM=IEFBR14
//D0000001 DD   DSN=&HLQ..SCACLOAD.TRS,
// DISP=(MOD,DELETE),SPACE=(CYL,(0))
//D0000002 DD   DSN=&HLQ..SCACMSGS.TRS,
// DISP=(MOD,DELETE),SPACE=(CYL,(0))
//D0000003 DD   DSN=&HLQ..CACCFGD.TRS,
// DISP=(MOD,DELETE),SPACE=(CYL,(0))
//D0000004 DD   DSN=&HLQ..CACCFGX.TRS,
// DISP=(MOD,DELETE),SPACE=(CYL,(0))
//D0000005 DD   DSN=&HLQ..SCACSAMP.TRS,
// DISP=(MOD,DELETE),SPACE=(CYL,(0))
//D0000006 DD   DSN=&HLQ..ALLTYP01.TRS,
// DISP=(MOD,DELETE),SPACE=(CYL,(0))
//*
//ALLOCTRS EXEC PGM=IEFBR14,COND=(0,LT)
//A0000001 DD   DISP=(NEW,CATLG,DELETE),
// DSN=&HLQ..SCACLOAD.TRS,
// SPACE=(CYL,(20,5)),DSORG=PS,
// DCB=(LRECL=1024,BLKSIZE=6144,RECFM=FB)
//A0000002 DD   DISP=(NEW,CATLG,DELETE),
// DSN=&HLQ..SCACMSGS.TRS,
// SPACE=(CYL,(15,1)),DSORG=PS,
// DCB=(LRECL=1024,BLKSIZE=6144,RECFM=FB)
//A0000003 DD   DISP=(NEW,CATLG,DELETE),
// DSN=&HLQ..CACCFGD.TRS,
// SPACE=(CYL,(1,1)),DSORG=PS,
// DCB=(LRECL=1024,BLKSIZE=6144,RECFM=FB)
//A0000004 DD   DISP=(NEW,CATLG,DELETE),
// DSN=&HLQ..CACCFGX.TRS,
// SPACE=(CYL,(1,1)),DSORG=PS,
// DCB=(LRECL=1024,BLKSIZE=6144,RECFM=FB)
//A0000005 DD   DISP=(NEW,CATLG,DELETE),
// DSN=&HLQ..SCACSAMP.TRS,
// SPACE=(CYL,(1,1)),DSORG=PS,
// DCB=(LRECL=1024,BLKSIZE=6144,RECFM=FB)
//A0000006 DD   DISP=(NEW,CATLG,DELETE),
// DSN=&HLQ..ALLTYP01.TRS,
// SPACE=(CYL,(1,1)),DSORG=PS,
// DCB=(LRECL=1024,BLKSIZE=6144,RECFM=FB)
//*
//DELETXMT EXEC PGM=IEFBR14,COND=(0,LT)
//D0000001 DD   DSN=&HLQ..SCACLOAD.XMIT,
// DISP=(MOD,DELETE),SPACE=(CYL,(0))
//*
//ALLOCXMT EXEC PGM=IEFBR14,COND=(0,LT)
//A0000001 DD   DISP=(NEW,CATLG,DELETE),
// DSN=&HLQ..SCACLOAD.XMIT,
// SPACE=(CYL,(20,5)),DSORG=PS,
// DCB=(LRECL=80,BLKSIZE=3120,RECFM=FB)
//*
//DELETTGT EXEC PGM=IEFBR14,COND=(0,LT)
//D0000001 DD   DSN=&HLQ..SCACLOAD,
// DISP=(MOD,DELETE),SPACE=(CYL,(0))
//D0000002 DD   DSN=&HLQ..SCACMSGS,
// DISP=(MOD,DELETE),SPACE=(CYL,(0))
//D0000003 DD   DSN=&HLQ..CACCFGD,
// DISP=(MOD,DELETE),SPACE=(CYL,(0))
//D0000004 DD   DSN=&HLQ..CACCFGX,
// DISP=(MOD,DELETE),SPACE=(CYL,(0))
//D0000005 DD   DSN=&HLQ..SCACSAMP,
// DISP=(MOD,DELETE),SPACE=(CYL,(0))
//D0000006 DD   DSN=&HLQ..ALLTYP01,
// DISP=(MOD,DELETE),SPACE=(CYL,(0))
//*
//ALLOCTGT EXEC PGM=IEFBR14,COND=(0,LT)
//A0000001 DD   DISP=(NEW,CATLG,DELETE),
// DSN=&HLQ..SCACLOAD,
// DSNTYPE=LIBRARY,
// SPACE=(CYL,(20,5)),DSORG=PO,
// DCB=(RECFM=U,LRECL=0,BLKSIZE=32760)
//A0000002 DD   DISP=(NEW,CATLG,DELETE),
// DSN=&HLQ..SCACMSGS,
// SPACE=(CYL,(15,1,1)),DSORG=PO,
// DCB=(LRECL=80,BLKSIZE=27920,RECFM=FB)
//A0000003 DD   DISP=(NEW,CATLG,DELETE),
// DSN=&HLQ..CACCFGD,
// SPACE=(CYL,(1,1)),DSORG=PS,
// DCB=(RECFM=FBS,LRECL=64,BLKSIZE=27968)
//A0000004 DD   DISP=(NEW,CATLG,DELETE),
// DSN=&HLQ..CACCFGX,DSORG=PS,
// SPACE=(CYL,(1,1)),
// DCB=(RECFM=FBS,LRECL=64,BLKSIZE=27968)
//A0000005 DD   DISP=(NEW,CATLG,DELETE),
// DSN=&HLQ..SCACSAMP,
// DSNTYPE=LIBRARY,
// SPACE=(CYL,(10,5)),DSORG=PO,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=27920)
//A0000006 DD   DISP=(NEW,CATLG,DELETE),
// DSN=&HLQ..ALLTYP01,DSORG=PS,
// SPACE=(CYL,(10,5)),
// DCB=(RECFM=VB,LRECL=6137,BLKSIZE=6141)

02_InstallRemoteLRS.Copy.jcl
JCL生成時に指定したパスと、TRSをアップロードしたパスを変えているので、PATH変数を実際にTRSを配置したパスに変更してSubmit
02_InstallRemoteLRS.Copy.jcl
//TEST011 JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),
// REGION=0M,NOTIFY=&SYSUID
//OUT1     OUTPUT JESDS=ALL,OUTDISP=(HOLD,HOLD)
// EXPORT SYMLIST=*
// SET HLQ=CEC.V114.REMOTE
// SET PATH='/u/TEST01/VSAMRemoteSource/TRS'
//*********************************************************************
//*                                                                   *
//*  Licensed Materials - Property of IBM                             *
//*                                                                   *
//*  5737-C30                                                         *
//*                                                                   *
//*  (C) Copyright IBM Corp. 2020, 2020 All Rights Reserved           *
//*                                                                   *
//*  US Government Users Restricted Rights - Use, duplication or      *
//*  disclosure restricted by GSA ADP Schedule contract with          *
//*  IBM Corp.                                                        *
//*                                                                   *
//*********************************************************************
//COPYTRS1 EXEC PGM=BPXBATCH
//STDENV    DD  *
_EDC_ADD_ERRNO2=1
//STDERR   DD   SYSOUT=*
//STDPARM  DD   *,SYMBOLS=JCLONLY
SH cp -F bin
&PATH./zOS.LOADR.TRS
"//'&HLQ..SCACLOAD.TRS'"
//*
//COPYTRS2 EXEC PGM=BPXBATCH,COND=(0,LT)
//STDENV    DD  *
_EDC_ADD_ERRNO2=1
//STDERR   DD   SYSOUT=*
//STDPARM  DD   *,SYMBOLS=JCLONLY
SH cp -F bin
&PATH./zOS.MSGS.TRS
"//'&HLQ..SCACMSGS.TRS'"
//*
//COPYTRS3 EXEC PGM=BPXBATCH,COND=(0,LT)
//STDENV    DD  *
_EDC_ADD_ERRNO2=1
//STDERR   DD   SYSOUT=*
//STDPARM  DD   *,SYMBOLS=JCLONLY
SH cp -F bin
&PATH./zOS.RMTLRSV.CACCFGD.TRS
"//'&HLQ..CACCFGD.TRS'"
//*
//COPYTRS4 EXEC PGM=BPXBATCH,COND=(0,LT)
//STDENV    DD  *
_EDC_ADD_ERRNO2=1
//STDERR   DD   SYSOUT=*
//STDPARM  DD   *,SYMBOLS=JCLONLY
SH cp -F bin
&PATH./zOS.RMTLRSV.CACCFGX.TRS
"//'&HLQ..CACCFGX.TRS'"
//*
//COPYTRS5 EXEC PGM=BPXBATCH
//STDENV    DD  *
_EDC_ADD_ERRNO2=1
//STDERR   DD   SYSOUT=*
//STDPARM  DD   *,SYMBOLS=JCLONLY
SH cp -F bin
&PATH./zOS.RMTLRS.SCACSAMP.TRS
"//'&HLQ..SCACSAMP.TRS'"
//*
//COPYTRS6 EXEC PGM=BPXBATCH
//STDENV    DD  *
_EDC_ADD_ERRNO2=1
//STDERR   DD   SYSOUT=*
//STDPARM  DD   *,SYMBOLS=JCLONLY
SH cp -F bin
&PATH./zOS.RMTLRSV.ALLTYP01.TRS
"//'&HLQ..ALLTYP01.TRS'"
//*


03_InstallRemoteLRS.Untrs.jcl
そのままSubmit
03_InstallRemoteLRS.Untrs.jcl
//TEST011 JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),
// REGION=0M,NOTIFY=&SYSUID
//OUT1     OUTPUT JESDS=ALL,OUTDISP=(HOLD,HOLD)
// EXPORT SYMLIST=*
// SET HLQ=CEC.V114.REMOTE
//*********************************************************************
//*                                                                   *
//*  Licensed Materials - Property of IBM                             *
//*                                                                   *
//*  5737-C30                                                         *
//*                                                                   *
//*  (C) Copyright IBM Corp. 2020, 2020 All Rights Reserved           *
//*                                                                   *
//*  US Government Users Restricted Rights - Use, duplication or      *
//*  disclosure restricted by GSA ADP Schedule contract with          *
//*  IBM Corp.                                                        *
//*                                                                   *
//*********************************************************************
//UNTERSE1 EXEC PGM=AMATERSE,PARM=UNPACK
//SYSPRINT DD   SYSOUT=*,OUTPUT=(*.OUT1)
//SYSUT1   DD   DISP=SHR,DSN=&HLQ..SCACLOAD.TRS
//SYSUT2   DD   DISP=SHR,DSN=&HLQ..SCACLOAD.XMIT
//*
//UNTERSE2 EXEC PGM=AMATERSE,PARM=UNPACK,COND=(0,LT)
//SYSPRINT DD   SYSOUT=*,OUTPUT=(*.OUT1)
//SYSUT1   DD   DISP=SHR,DSN=&HLQ..SCACMSGS.TRS
//SYSUT2   DD   DISP=SHR,DSN=&HLQ..SCACMSGS
//*
//UNTERSE3 EXEC PGM=AMATERSE,PARM=UNPACK,COND=(0,LT)
//SYSPRINT DD   SYSOUT=*,OUTPUT=(*.OUT1)
//SYSUT1   DD   DISP=SHR,DSN=&HLQ..CACCFGD.TRS
//SYSUT2   DD   DISP=SHR,DSN=&HLQ..CACCFGD
//*
//UNTERSE4 EXEC PGM=AMATERSE,PARM=UNPACK,COND=(0,LT)
//SYSPRINT DD   SYSOUT=*,OUTPUT=(*.OUT1)
//SYSUT1   DD   DISP=SHR,DSN=&HLQ..CACCFGX.TRS
//SYSUT2   DD   DISP=SHR,DSN=&HLQ..CACCFGX
//*
//UNTERSE5 EXEC PGM=AMATERSE,PARM=UNPACK
//SYSPRINT DD   SYSOUT=*,OUTPUT=(*.OUT1)
//SYSUT1   DD   DISP=SHR,DSN=&HLQ..SCACSAMP.TRS
//SYSUT2   DD   DISP=SHR,DSN=&HLQ..SCACSAMP
//*
//UNTERSE6 EXEC PGM=AMATERSE,PARM=UNPACK
//SYSPRINT DD   SYSOUT=*,OUTPUT=(*.OUT1)
//SYSUT1   DD   DISP=SHR,DSN=&HLQ..ALLTYP01.TRS
//SYSUT2   DD   DISP=SHR,DSN=&HLQ..ALLTYP01
//*
//RECEIVE1 EXEC PGM=IKJEFT01,COND=(0,LT)
//INXMIT1  DD   DISP=SHR,DSN=&HLQ..SCACLOAD.XMIT
//SYSPRINT DD   SYSOUT=*,OUTPUT=(*.OUT1)
//SYSTSPRT DD   SYSOUT=*,OUTPUT=(*.OUT1)
//SYSTSIN  DD   *,SYMBOLS=JCLONLY
 RECEIVE INDDNAME(INXMIT1)
 DATASET('&HLQ..SCACLOAD')
//*
//DEFREP01 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN    DD *,SYMBOLS=(JCLONLY)
 DELETE '&HLQ..ALLTYP01.FILE0001'
 SET MAXCC = 0
 DEFINE CLUSTER (NAME('&HLQ..ALLTYP01.FILE0001') -
                 KEYS       (9 2) -
                 CYLINDERS  (20 10) -
                 RECORDSIZE (6137 6137) -
                 FREESPACE  (10 10) -
                 LOG(NONE) -
                 LOGSTREAMID(CEC.RMTLRS.IVP.REPLLOG) -
                 LOGREPLICATE -
                 SHAREOPTION (2 3)) -
    DATA    (NAME(&HLQ..ALLTYP01.FILE0001.DATA)) -
    INDEX    (NAME(&HLQ..ALLTYP01.FILE0001.INDEX))
 REPRO INDATASET('&HLQ..ALLTYP01') -
       OUTDATASET('&HLQ..ALLTYP01.FILE0001')
//*
//DEFREP02 EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN    DD *,SYMBOLS=(JCLONLY)
 DELETE '&HLQ..EMPLOYEE.FILE0001'
 SET MAXCC = 0
 DEFINE CLUSTER (NAME('&HLQ..EMPLOYEE.FILE0001') -
                 KEYS       (20 0) -
                 CYLINDERS  (20 10) -
                 RECORDSIZE (80 80) -
                 FREESPACE  (10 10) -
                 INDEXED -
                 LOG(NONE) -
                 LOGSTREAMID(CEC.RMTLRS.IVP.REPLLOG) -
                 LOGREPLICATE -
                 SHAREOPTION (2 3)) -
    DATA    (NAME(&HLQ..EMPLOYEE.FILE0001.DATA)) -
    INDEX    (NAME(&HLQ..EMPLOYEE.FILE0001.INDEX))
 REPRO INDATASET('&HLQ..SCACSAMP(CACEDATA)') -
       OUTDATASET('&HLQ..EMPLOYEE.FILE0001')
//*

CEC.V114.REMOTE以下にライブラリが展開されます。

CEC.V114.REMOTE.**
CEC                                      
CEC.V114.REMOTE.ALLTYP01                 
CEC.V114.REMOTE.ALLTYP01.FILE0001        
CEC.V114.REMOTE.ALLTYP01.FILE0001.DATA   
CEC.V114.REMOTE.ALLTYP01.FILE0001.INDEX  
CEC.V114.REMOTE.ALLTYP01.TRS             
CEC.V114.REMOTE.CACCFGD                  
CEC.V114.REMOTE.CACCFGD.TRS              
CEC.V114.REMOTE.CACCFGX                  
CEC.V114.REMOTE.CACCFGX.TRS              
CEC.V114.REMOTE.EMPLOYEE.FILE0001        
CEC.V114.REMOTE.EMPLOYEE.FILE0001.DATA   
CEC.V114.REMOTE.EMPLOYEE.FILE0001.INDEX  
CEC.V114.REMOTE.SCACLOAD                 
CEC.V114.REMOTE.SCACLOAD.TRS             
CEC.V114.REMOTE.SCACLOAD.XMIT            
CEC.V114.REMOTE.SCACMSGS                 
CEC.V114.REMOTE.SCACMSGS.TRS             
CEC.V114.REMOTE.SCACSAMP                 
CEC.V114.REMOTE.SCACSAMP.TRS             

04_APFAuthorize.jcl
そのままSubmit
04_APFAuthorize.jcl
/*$VS,'SETPROG APF,ADD,DSNAME=CEC.V114.REMOTE.SCACLOAD,SMS'
//TEST011 JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),
// REGION=0M,NOTIFY=&SYSUID
//OUT1     OUTPUT JESDS=ALL,OUTDISP=(HOLD,HOLD)
// EXPORT SYMLIST=*
// SET HLQ=CEC.V114.REMOTE
//*********************************************************************
//*                                                                   *
//*  Licensed Materials - Property of IBM                             *
//*                                                                   *
//*  5737-C30                                                         *
//*                                                                   *
//*  (C) Copyright IBM Corp. 2020, 2020 All Rights Reserved           *
//*                                                                   *
//*  US Government Users Restricted Rights - Use, duplication or      *
//*  disclosure restricted by GSA ADP Schedule contract with          *
//*  IBM Corp.                                                        *
//*                                                                   *
//*********************************************************************
//APFREXX1 EXEC PGM=IEBGENER
//SYSIN    DD DUMMY
//SYSPRINT DD DUMMY
//SYSUT2   DD DSN=&TEMPREX(REXXAPFD),DISP=(,PASS),
// SPACE=(CYL,(1,1,1)),UNIT=3390,
// DCB=(LRECL=80,RECFM=FB,DSORG=PO)
//SYSUT1   DD DATA,DLM=##,SYMBOLS=JCLONLY
/* REXX */
/*
 * WAIT 10 SECONDS
 */
CALL SYSCALLS 'ON'
ADDRESS SYSCALL
"SLEEP" 10
CALL SYSCALLS 'OFF'
ADDRESS TSO
"CONSPROF SOLDISPLAY(NO) SOLNUM(50) UNSOLDISPLAY(NO)"
"CONSOLE ACTIVATE,NAME(CECVSMRM)"
ADDRESS CONSOLE
CART = 'APFDISP01'
"CART APFDISP01"
"D PROG,APF,DSNAME=&HLQ..SCACLOAD"
DISPMSG = ''
RC = 8
MCODE = GETMSG("DISPMSG.","SOL",CART,,30)
IF MCODE <> 0 THEN
   SAY 'MCODE = 'MCODE
ELSE
   DO UNTIL DISPMSG.1 = ''
      I = 1
      DO I=1 TO DISPMSG.0
         SAY DISPMSG.I
         IF WORDPOS("CSV452I", DISPMSG.I) <> 0 THEN
            RC = 4
         IF WORDPOS("CSV450I", DISPMSG.I) <> 0 THEN
            RC = 0
         DISPMSG.I = ''
      END
      MCODE = GETMSG("DISPMSG.","SOL",CART,,1)
   END
EXIT RC
##
//*
//RUN       EXEC PGM=IKJEFT01,PARM='REXXAPFD'
//SYSEXEC   DD DSN=&TEMPREX,DISP=(SHR,PASS)
//SYSTSPRT  DD SYSOUT=A,HOLD=YES
//SYSTSIN   DD DUMMY

上のJCLではAPFの登録を行っているので結果を確認しておきます。

D PROG,APF
D PROG,APF                           
CSV450I 17.33.49 PROG,APF DISPLAY 728
FORMAT=DYNAMIC                       
ENTRY VOLUME DSNAME                  
   1  B4RES1 SYS1.LINKLIB            
   2  B4RES1 SYS1.SVCLIB             
   3  B4RES1 SYS1.SHASLNKE           
   4  B4RES1 SYS1.SIEAMIGE           
   5  B4RES1 SYS1.MIGLIB                    
       
...
        
 103  B4PRD4 CSQ911.SCSQANLE          
 104  B4PRD4 CSQ911.SCSQMVR1          
 105  B4ZWE1 ZWE100.SZWEAUTH          
 106  *SMS*  CEC.V114.REMOTE.SCACLOAD 

※必要であれば、IPL後も有効化するためにPROGxxにも定義を追加しておきます。


05_UpdateRemoteLRSConfig.jcl
そのままSubmit
05_UpdateRemoteLRSConfig.jcl
//TEST011 JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),
// REGION=0M,NOTIFY=&SYSUID
//OUT1     OUTPUT JESDS=ALL,OUTDISP=(HOLD,HOLD)
// SET HLQ=CEC.V114.REMOTE
//*********************************************************************
//*                                                                   *
//*  Licensed Materials - Property of IBM                             *
//*                                                                   *
//*  5737-C30                                                         *
//*                                                                   *
//*  (C) Copyright IBM Corp. 2020, 2020 All Rights Reserved           *
//*                                                                   *
//*  US Government Users Restricted Rights - Use, duplication or      *
//*  disclosure restricted by GSA ADP Schedule contract with          *
//*  IBM Corp.                                                        *
//*                                                                   *
//*********************************************************************
//GENCMDS  EXEC PGM=IEBGENER
//SYSIN    DD DUMMY
//SYSPRINT DD DUMMY
//SYSUT2   DD DSN=&HLQ..MODCONF1,DISP=(,CATLG,DELETE),
// SPACE=(TRK,(1,1)),UNIT=3390,
// DCB=(LRECL=80,RECFM=FB,DSORG=PS)
//SYSUT1   DD *
SET,CONFIG,SERVICE=LOG,STREAMNAME=CEC.RMTLRS.CECDIAG;
SET,CONFIG,SERVICE=LRSV,LISTENPORT=9087;
/*
//EXPORTCF EXEC PGM=CACCFGUT,
//  PARM='IMPORT,CONFIG,FILENAME=DDN:CACCFG'
//* PARM='REPORT'
//STEPLIB  DD DISP=SHR,DSN=&HLQ..SCACLOAD
//CACCFGD  DD DISP=SHR,DSN=&HLQ..CACCFGD
//CACCFGX  DD DISP=SHR,DSN=&HLQ..CACCFGX
//MSGCAT   DD DISP=SHR,DSN=&HLQ..SCACMSGS
//CACCFG   DD DSN=&HLQ..MODCONF1,DISP=(OLD,DELETE,DELETE)
//SYSPRINT DD  SYSOUT=*

LogReaderの構成が行われます。


06_CreateLogs.jcl
そのままSubmit
06_CreateLogs.jcl
//TEST011 JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),
// REGION=0M,NOTIFY=&SYSUID
//OUT1     OUTPUT JESDS=ALL,OUTDISP=(HOLD,HOLD)
//*********************************************************************
//*                                                                   *
//*  Licensed Materials - Property of IBM                             *
//*                                                                   *
//*  5737-C30                                                         *
//*                                                                   *
//*  (C) Copyright IBM Corp. 2020, 2020 All Rights Reserved           *
//*                                                                   *
//*  US Government Users Restricted Rights - Use, duplication or      *
//*  disclosure restricted by GSA ADP Schedule contract with          *
//*  IBM Corp.                                                        *
//*                                                                   *
//*********************************************************************
//ALLOCLGS   EXEC  PGM=IXCMIAPU
//SYSPRINT DD SYSOUT=*,OUTPUT=(*.OUT1)
//SYSOUT   DD SYSOUT=*,OUTPUT=(*.OUT1)
//SYSIN    DD *
   DATA TYPE(LOGR) REPORT(NO)
   /*DELETE LOGSTREAM NAME(CEC.RMTLRS.CECDIAG)*/
   DEFINE LOGSTREAM NAME(CEC.RMTLRS.CECDIAG)
          DASDONLY(YES)
          LS_SIZE(2400) STG_SIZE(3000)
          RETPD(14) AUTODELETE(YES)
   /*DELETE LOGSTREAM NAME(CEC.RMTLRS.CECREPL)*/
   DEFINE LOGSTREAM NAME(CEC.RMTLRS.CECREPL)
          DASDONLY(YES)
          LS_SIZE(2400) STG_SIZE(3000)
          RETPD(7) AUTODELETE(YES)

LogStreamの定義が追加されます。


07_StartServerJob.jcl
JOB名をCECRMTLRに変更してSubmit
07_StartServerJob.jcl
//CECRMTLR JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),
// REGION=0M,NOTIFY=&SYSUID
//OUT1     OUTPUT JESDS=ALL,OUTDISP=(HOLD,HOLD)
// SET HLQ=CEC.V114.REMOTE
//*********************************************************************
//*                                                                   *
//*  Licensed Materials - Property of IBM                             *
//*                                                                   *
//*  5737-C30                                                         *
//*                                                                   *
//*  (C) Copyright IBM Corp. 2020, 2020 All Rights Reserved           *
//*                                                                   *
//*  US Government Users Restricted Rights - Use, duplication or      *
//*  disclosure restricted by GSA ADP Schedule contract with          *
//*  IBM Corp.                                                        *
//*                                                                   *
//*********************************************************************
//CACPROC  PROC
//*
//CACPROC  EXEC PGM=CACCNTL,TIME=1440,REGION=0M
//*
//STEPLIB  DD DISP=SHR,DSN=&HLQ..SCACLOAD
//CACCFGD  DD DISP=SHR,DSN=&HLQ..CACCFGD
//CACCFGX  DD DISP=SHR,DSN=&HLQ..CACCFGX
//SYSOUT   DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//*
//CACLOG   DD DISP=(NEW,PASS,KEEP),DSN=&&LOG,
//   UNIT=SYSDA,SPACE=(TRK,(300,100))
//MSGCAT   DD DISP=SHR,DSN=&HLQ..SCACMSGS
//*
// PEND
//*
//EXECPROC EXEC CACPROC
//CACPROC.CEEOPTS  DD *
TERMTHDACT(UAIMM),TRAP(ON,NOSPIE)
/*

これでLog Readerが起動する。

 2021-08-03-18.04.10.449889 RC(04), SpcRC(01080001), Data(23bef710,23d63b60)
    Node(41), Task(9191048)
    FILE,LOG, func lrsmmain, line 892 in SYS21168.T114032.RA000.CACBLDC0.PH38171.H02(MSLCLRSM)
    'CECL0001I The log reader service is now active.           

NETSTATで9087ポートがのListenされていることを確認。

D TCPIP,TCPIP,NETSTAT,CON                                               
EZZ2500I NETSTAT CS V2R4 TCPIP 984                                      
USER ID  CONN     LOCAL SOCKET           FOREIGN SOCKET         STATE   
BPXOINIT 00000015 0.0.0.0..10007         0.0.0.0..0             LISTEN  
CECRMTLR 000008F1 0.0.0.0..9087          0.0.0.0..0             LISTEN  
CFZCIM   0000001D 0.0.0.0..5989          0.0.0.0..0             LISTEN  
...

(5) Classic Data Architect (CDA)

参考 Installing the Classic Data Architect

インストール

IIDR V11.4に含まれるCDAのインストーラーをみるとV11.3となっています。CDAのバージョンは11.3と同等のものが提供されているようです。fix centralを見てもV11.4のfixは無さそうでした。なので、現時点で最新のV11.3レベルのCDAをfix centralから入手してインストールします。
(2021年7月時点の最新: 11.3 Fix Pack 18 Build 1148)

install.exeを実行
image.png

Installation Managerの操作
次へ ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/4fe659de-3a2d-1064-c1ce-02c057bde6c9.png)

インストール・ディレクトリを指定して次へ
image.png

次へ
image.png

インストール
image.png

終了
image.png

稼働確認

WindowsのStartメニューからIBM InfoSphere Classic Data Architectを選択
image.png

ワークスペースを指定してOK
image.png

image.png

VSAM Remote Sourceとの接続構成作成

コンソール・エクスプローラー・ビューの接続を右クリック - 新規接続を選択
image.png

コンテナとして稼働しているVSAM Remote Sourceへの接続情報を指定します。
ローカルの19087ポートをVirtualBox上のマシンの9087ポートにフォワードする構成にしているので、ここではホスト名はlocalhost、ポートは19087にしています。
ユーザー/パスワードはコンテナ起動ユーザーのものを指定します。
image.png

接続が完了すると、以下のように表示されます。
image.png

構成以下のCAPTURE[CAP}を選択してプロパティービューを見ると、REMOTELRURLにz/OS上のLogReaderのアドレス、ポート情報が保持されています。また、ZOSCODEPAGEとして1399が指定されています。
image.png

構成以下のCNTL[CNTL}を選択してプロパティービューを見ると、DBCSCODEPAGEとして16684が指定されています。
image.png

この情報はVSAM Remote Sourceのコンテナ作成時の環境変数で指定したものが反映されて、永続ボリューム上に保持されているようです。一度コンテナを作成したのち、永続ボリュームは引き継いでz/OS側ポートなどの情報を変更してコンテナ再作成しても、この情報は上書きされませんでした。初回起動時に指定された値がそのまま残り続けてしまうようなので、後から変更したい場合はこの画面から情報を上書きする必要があります。

(6) Target Engine(CDC Replication Engine for Db2 for LUW)

ターゲットがDb2なのでDb2用のCDC Replication Engineを導入します。

事前準備

参考: CDC Replication Engine for Db2 for LUW をインストールする前に

インスタンス/データベースの作成

今回はレプリケーションのターゲットはDb2を想定しますので、Db2を導入し、レプリケーション先となるインスタンスおよびデータベースを構成しておきます。
ここでは、以下の環境を使用する想定です。
インスタンス: db2inst1
データベース: SAMPLE2

※Db2自体の構成手順はここでは割愛。
データベースはcreate databaseしただけの状態。

管理ユーザー作成

Target Engine管理用のユーザー "cdcdb2"を作成してパスワード設定しておきます。

[root@test12 ~]# useradd cdcdb2
[root@test12 ~]# passwd cdcdb2
ユーザー cdcdb2 のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

db2管理者グループであるdb2iadmを追加します。

[root@test12 ~]# usermod -aG db2iadm1 cdcdb2
[root@test12 ~]# id cdcdb2
uid=9088(cdcdb2) gid=9088(cdcdb2) groups=9088(cdcdb2),102(db2iadm1)

またターゲットとなるデータベース"SAMPLE2"のdbadm権限を付与しておきます。

[cdcdb2@test12 ~]$ su - db2inst1
パスワード:
[db2inst1@test12 ~]$ db2 connect to SAMPLE2

   データベース接続情報

 データベース・サーバー = DB2/LINUXX8664 11.1.0
 SQL 許可 ID            = DB2INST1
 ローカル・データベース別名 = SAMPLE2

[db2inst1@test12 ~]$ db2 grant dbadm on database to user cdcdb2
DB20000I  SQL コマンドが正常に完了しました。
[db2inst1@test12 ~]$ db2 connect reset
DB20000I  SQL コマンドが正常に完了しました。
[db2inst1@test12 ~]$ exit
ログアウト

db2構成パラメーターのカスタマイズ

参考:
データベース・ログ保存の可能化
Db2 V11.5 - logarchmeth1 - Primary log archive method configuration parameter

データベース構成パラメーター "LOGARCHMETH1"の現在の設定値確認

[root@test12 ~]# su - db2inst1

[db2inst1@test12 ~]$ db2 connect to SAMPLE2

   データベース接続情報

 データベース・サーバー = DB2/LINUXX8664 11.1.0
 SQL 許可 ID            = DB2INST1
 ローカル・データベース別名 = SAMPLE2


[db2inst1@test12 ~]$ db2 get db cfg | grep LOGARCHMETH
 第 1 ログ・アーカイブ・メソッド          (LOGARCHMETH1) = OFF
 第 2 ログ・アーカイブ・メソッド          (LOGARCHMETH2) = OFF

LOGARCHMETH1をLOGRETAINに指定

[db2inst1@test12 ~]$ db2 update db cfg using LOGARCHMETH1 LOGRETAIN
DB20000I  UPDATE DATABASE CONFIGURATION
コマンドが正常に完了しました。
SQL1363W  即時変更のためにサブミットされた 1
つ以上のパラメーターが動的に変更されませんでした。
これらの構成パラメーターの場合、構成パラメーターの変更
が有効になる前に、データベースをシャットダウンして再ア
クティブ化する必要があります。

[db2inst1@test12 ~]$ db2 get db cfg | grep LOGARCHMETH
 第 1 ログ・アーカイブ・メソッド          (LOGARCHMETH1) = LOGRETAIN
 第 2 ログ・アーカイブ・メソッド          (LOGARCHMETH2) = OFF

deactivate => backup(/dev/nullに捨てる) => acitivate します。

[db2inst1@test12 ~]$ db2 connect reset
DB20000I  SQL コマンドが正常に完了しました。

[db2inst1@test12 ~]$ db2 deactivate database sample2
DB20000I  DEACTIVATE DATABASE コマンドが正常に完了しました。

[db2inst1@test12 ~]$ db2 activate database sample2
SQL1116N  データベース "SAMPLE2" は BACKUP PENDING
状態になっているため、そのデータベースへの接続、または
そのデータベースのアクティブ化は失敗しました。
SQLSTATE=57019

[db2inst1@test12 ~]$ db2 backup db SAMPLE2 to /dev/null

バックアップは成功しました。
このバックアップ・イメージのタイム・スタンプは
20210805112802 です。

[db2inst1@test12 ~]$ db2 activate database SAMPLE2
DB20000I  ACTIVATE DATABASE コマンドが正常に完了しました。

ディレクトリ作成

リフレッシュ・ローダーなるものが使用するディレクトリを作成しておきます。これはCDC Replicationユーザー(ここではcdcdb2)および、Db2インスタンス(ここではdb2inst1)の両方に対してread/write/execute権限が必要のようです。
ディレクトリ /home/cdcdb2/RefreshLoader_SAMPLE2 を作成してdb2iadm1グループに権限付与します。

[root@test12 ~]# su - cdcdb2
[cdcdb2@test12 ~]$ pwd
/home/cdcdb2
[cdcdb2@test12 ~]$ mkdir RefreshLoader_SAMPLE2
[cdcdb2@test12 ~]$ chgrp db2iadm1 RefreshLoader_SAMPLE2
[cdcdb2@test12 ~]$ chmod 775 RefreshLoader_SAMPLE2
[cdcdb2@test12 ~]$ ls -la | grep RefreshLoader
drwxrwxr-x.  2 cdcdb2 db2iadm1   6  8月  5 11:49 RefreshLoader_SAMPLE2

※親(/home/cdcdb2)のパーミッションも775に変更しておく。そうしないと後続処理でエラーが出る。

[cdcdb2@test12 ~]$ ls -la
合計 44
drwxrwxr-x.  7 cdcdb2 cdcdb2   4096  8月 11 12:12 .
drwxr-xr-x. 16 root   root      217  8月  4 18:56 ..
...
drwxrwxr-x.  2 cdcdb2 db2iadm1    6  8月 11 15:53 RefreshLoader_SAMPLE2

インストール

参考: Installing the CDC Replication Engine for Db2® Database using an interactive installation (UNIX and Linux)

現時点での最新fixをfix centralのサイトから入手します。
(2021年7月時点の最新: IBM InfoSphere Data Replication CDC for all Linux agents 11.4.0.4 Build 5602)
入手したbin(setup-iidr-11.4.0.4-5602-linux-x86.bin)を直接実行すればよさそうなので、先に作成したcdcdb2ユーザーで、このbinを実行してインストーラーを起動します。

指示に従ってインストール。

インストール時のログ
[cdcdb2@test12 /Inst_Image/CDC/CDCAgent]$ ./setup-iidr-11.4.0.4-5602-linux-x86.bin
Preparing to install
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...

Launching installer...

===============================================================================
ロケールの選択...
----------

    1- English
  ->2- 日本語

番号でロケールを選択してください: 2
===============================================================================
IBM InfoSphere Data Replication                           (InstallAnywhere で作成)
-------------------------------------------------------------------------------

コンソール モード インストールの準備中...




===============================================================================


概要
InstallAnywhere を使用して、IBM InfoSphere Data Replication 11.4.0.4
をインストールします。

各プロンプトに応答して、
インストールの次のステップに進みます。
前のステップに戻って変更を加えたい場合は、
「back」と入力します。

「quit」と入力すると、
いつでもインストールをキャンセルできます。
  ->1- 新規製品のインストール
    2- 既存製品のアップグレード

選択項目の番号を入力するか、<ENTER>
   を押してデフォルトを受け入れてください。: 1



===============================================================================


データ・ストア・タイプの選択
  ->1- IBM Db2 for z/OS
    2- Kafka
    3- IBM DB2
    4- IBM InfoSphere DataStage (including Apache Hadoop, WebHDFS, Cloudant)
    5- FlexRep
    6- IBM Netezza
    7- Oracle
    8- Oracle XStream
    9- Oracle Trigger
   10- Teradata
   11- PostgreSQL
   12- MySQL

選択項目の番号を入力するか、<ENTER>
   を押してデフォルトを受け入れてください。: 3



===============================================================================


オファリングの選択

資格を持つオファリングの判別でお困りの場合は、
営業担当員にお問い合わせください。

  ->1- IBM Data Replication
    2- IBM Data Replication Targets for z/OS Sources
    3- IBM InfoSphere Data Replication Non-RDBMS Targets
    4- IBM InfoSphere Data Replication
    5- IBM InfoSphere Change Data Delivery
    6- IBM InfoSphere Change Data Delivery for PureData System for Analytics
    7- IBM Data Replication Db2 for z/OS Remote Source
    8- IBM Data Replication VSAM for z/OS Remote Source

選択項目の番号を入力するか、<ENTER>
   を押してデフォルトを受け入れてください。: 4



===============================================================================
インストール・フォルダーの選択
---------------

インストール・フォルダー

  デフォルトのインストール フォルダー: /opt/ibm/InfoSphereDataReplication/ReplicationEngineforIBMDB2

絶対パスを入力するか、ENTER
   キーを押してデフォルトを使用してください。
      :



===============================================================================




    ライセンス情報

    以下の「プログラム」は、お客様と IBM
とが事前に合意した「プログラム」の
    使用許諾条件に加えて、
次のライセンス情報の使用条件に基づいて使用許諾さ
    れます。 お客様が「プログラム」の有効な使用許諾条件
に事前に合意していな
    い場合、 プログラムのご使用条件 (Z125-3301-14)
が適用されます。

    プログラム名 (プログラム番号):
    IBM InfoSphere Data Replication V11.4.0.4 (5725-E30)
    IBM InfoSphere Data Replication for Non-Production Environments V11.
    4.0.4 (5725-E30)

    以下の標準条件が、
ライセンシーによる「プログラム」の使用に適用されま
    す。

    使用制限付き権利

    バンドル・プログラムを例外として、
ライセンシーに提供されるすべての IBM

ご使用条件の続きを読む場合は、Enter
   キーを押してください。「同意する」場合は「1」を押し、
   「同意しない」場合は「2」、印刷する場合は「3」、
   英文でご覧になる場合は「5」を押してください。
   「99」を押すと前の画面に戻ります。: 1




===============================================================================
インスタンス・フォルダーの選択
---------------

インスタンスおよび製品ログをどこに作成しますか?

絶対パスを入力するか、Enter
を押してデフォルトを受け入れます

インスタンス・フォルダー: (デフォルト:
   /opt/ibm/InfoSphereDataReplication/ReplicationEngineforIBMDB2):




===============================================================================
プリインストール要約
----------

処理を続行する前に、以下の内容を確認してください。

製品名:
    IBM InfoSphere Data Replication

インストール フォルダー:
    /opt/ibm/InfoSphereDataReplication/ReplicationEngineforIBMDB2

インスタンス・フォルダー:
    "/opt/ibm/InfoSphereDataReplication/ReplicationEngineforIBMDB2"

データ・ストア・タイプ:
    IBM DB2

オファリング:
    IBM InfoSphere Data Replication

ディスク容量情報 (インストール先):
    必要なディスク容量:  423,876,558 バイト
    使用可能なディスク容量: 50,254,811,136 バイト

続行するには ENTER キーを押します:



===============================================================================
インストール中...
----------

 [==================|==================|==================|==================]
 [------------------|------------------|------------------|------------------]



===============================================================================
インストールが完了しました
-------------

お疲れさまでした。 IBM InfoSphere Data Replication
は次の場所に正常にインストールされました。
/opt/ibm/InfoSphereDataReplication/ReplicationEngineforIBMDB2

/opt/ibm/InfoSphereDataReplication/ReplicationEngineforIBMDB2/bin/dmconfiguret
s を実行して
   構成ツールを起動できます。

構成ツールを起動しますか? (1=はい、2=いいえ)
   (デフォルト: 1): 2

セットアップ(レプリケーション・エンジンのインスタンス作成)

上のインストーラーの最後で「構成ツールを起動しますか?」の所で「1=はい」を指定すれば、GUIの構成ツールが起動してきます。「2=いいえ」を指定した場合、あとから /opt/ibm/InfoSphereDataReplication/ReplicationEngineforIBMDB2/bin/dmconfiguretsを手動で実行して構成ツールを起動できます。
構成ツールはGUIなので、X Serverの環境が必要になります。

OK
image.png

Encryption profileのManageをクリック
image.png

追加
image.png

NoTLSというProfile名、Encryption:Disabledを指定してOK
image.png

インスタンス構成画面に戻ってEncryption profileで、上で追加したNoTLSを選択。その他のパラメータも適宜選択して、「通信プロトコル」タブへ。
image.png

TCP/IPのみ を選択してOK
image.png

image.png

参考:リフレッシュ・ローダー・パスに指定したディレクトリのパーミッションが不十分だと...
以下のようなエラーになり、データソース作成時にターゲットとして認識されません。 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132331/f153d3b2-a395-f7ca-b4b2-4fe06eb600ba.png)

以下のような情報があります。
Troubleshooting: Db2 Load API test failed

image.png

実行中になりました。
image.png

ネットワーク構成

firewalldに対してポート10901へのアクセスを許可しておきます。

[root@test12 ~]# firewall-cmd --zone=public --add-port=10901/tcp --permanent
success
[root@test12 ~]# firewall-cmd --reload
success
3
2
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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?