Precisely からのConnect を使用して VSAM ファイルを Amazon RDS または Amazon MSK に移行およびレプリケート - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Precisely からのConnect を使用して VSAM ファイルを Amazon RDS または Amazon MSK に移行およびレプリケート

プラチ・カンナ(AWS)とブーパシー・ゴパルサミー(AWS)によって作成されました

環境:PoC またはパイロット

ソース:VSAM

ターゲットデータベース

Rタイプ:リアーキテクト

ワークロード:IBM

テクノロジー: メインフレーム、モダナイゼーション

AWS サービス: Amazon MSK、Amazon RDS、AWS Mainframe Modernization

[概要]

このパターンは、「Connect」 from Precisely を使用して、メインフレームから AWS クラウドのターゲット環境に仮想ストレージアクセス方法 (VSAM) ファイルを移行および複製する方法を示しています。このパターンで対象となる環境には、Amazon Relational Database Service (Amazon RDS) と Amazon Managed Streaming for Apache Kafka (Amazon MSK) などがあります。Connect は、「変更データキャプチャ (CDC)」を使用してソース VSAM ファイルへの更新を継続的に監視し、これらの更新を 1 つ以上の AWS ターゲット環境に転送します。このパターンを使用して、アプリケーションのモダナイゼーションやデータ分析の目標を達成できます。たとえば、Connect を使用して VSAM アプリケーションファイルを低レイテンシーで AWS クラウドに移行したり、VSAM データを AWS データウェアハウスまたはデータレイクに移行して、アプリケーションのモダナイゼーションに必要以上の同期レイテンシーに耐えられる分析を行うことができます。

前提条件と制限

前提条件

制約事項

  • Connect は、ソース VSAM スキーマまたはコピーブックに基づくターゲットテーブルの自動作成をサポートしていません。ターゲットテーブル構造は初めて定義する必要があります。

  • Amazon RDS などの非ストリーミングターゲットの場合は、Apply Engine 設定スクリプトに変換ソースからターゲットへのマッピングを指定する必要があります。

  • ログ記録、モニタリング、アラート機能は APIs を通じて実装され、外部コンポーネント (Amazon など CloudWatch) が完全に動作している必要があります。

製品バージョン

  • z/OS 用 SQData 40134

  • Amazon Elastic Compute Cloud (Amazon EC2) 上の Amazon マシンイメージ (AMI) 用 SQData 4.0.43

アーキテクチャ

ソーステクノロジースタック

  • Job コントロール言語 (JCL)

  • z/OS UNIX シェルとインタラクティブ・システム・プロダクティビティ・ファシリティ (ISPF)

  • VSAM ユーティリティ (IDCAMS)

ターゲットテクノロジースタック

  • Amazon EC2

  • Amazon MSK

  • Amazon RDS

  • Amazon VPC

ターゲットアーキテクチャ

VSAM ファイルを Amazon RDS に移行する

次の図は、ソース環境 (オンプレミスのメインフレーム) では CDC エージェント/パブリッシャー、ターゲット環境 (AWS クラウド) では 「Apply Engine」を使用して、VSAM ファイルを Amazon RDS などのリレーショナルデータベースにリアルタイムまたはほぼリアルタイムで移行する方法を示しています。

Diagram showing data flow from on-premises mainframe to AWS クラウド, including VSAM files and Amazon RDS.

この図は、次のバッチワークフローを示しています。

  1. Connect は、バックアップファイルの VSAM ファイルを比較して変更を特定することでファイルへの変更をキャプチャし、その変更をログストリームに送信します。

  2. パブリッシャーはシステムログストリームのデータを消費します。

  3. パブリッシャーは、キャプチャしたデータ変更を TCP/IP 経由でターゲットエンジンに伝えます。 Controller デーモンは、ソースとターゲット環境の間の通信を認証します。

  4. ターゲット環境のApply Engineは、パブリッシャーエージェントから変更を受け取り、リレーショナルデータベースまたは非リレーショナルデータベースに適用します。

この図は、次のオンラインワークフローを示しています。

  1. Connect は、ログ複製を使用してオンラインファイルの変更をキャプチャし、キャプチャした変更をログストリームにストリーミングします。

  2. パブリッシャーはシステムログストリームのデータを消費します。

  3. パブリッシャーは、キャプチャしたデータ変更を TCP/IP 経由でターゲットエンジンに伝えます。Controller デーモンは、ソースとターゲット環境の間の通信を認証します。

  4. ターゲット環境のApply Engineは、パブリッシャーエージェントから変更を受け取り、リレーショナルデータベースまたは非リレーショナルデータベースに適用します。

VSAM ファイルを Amazon MSK に移行しています。

次の図は、VSAM データ構造をメインフレームから Amazon MSK にハイパフォーマンスモードでストリーミングし、Amazon MSK と統合する JSON または AVRO スキーマ変換を自動的に生成する方法を示しています。

Diagram showing data flow between on-premises mainframe and AWS クラウド services.

この図は、次のバッチワークフローを示しています。

  1. Connect は、CICS VR を使用するか、バックアップファイルの VSAM ファイルを比較して変更を特定することにより、変更をファイルにキャプチャします。キャプチャされた変更はログストリームに送信されます。

  2. パブリッシャーはシステムログストリームのデータを消費します。

  3. パブリッシャーは、キャプチャしたデータ変更を TCP/IP 経由でターゲットエンジンに伝えます。Controller デーモンは、ソースとターゲット環境の間の通信を認証します。

  4. parallel 処理モードで動作している Replicator Engine は、データをワークキャッシュ単位に分割します。

  5. ワーカースレッドは、キャッシュからデータをキャプチャします。

  6. データはワーカースレッドから Amazon MSK トピックに公開されます。

  7. ユーザーは、コネクタ を使用して、Amazon DynamoDB 、Amazon Simple Storage Service (Amazon S3)、Amazon OpenSearch Service などのターゲットに Amazon MSK からの変更を適用します。

この図は、次のオンラインワークフローを示しています。

  1. オンラインファイル内の変更は、ログ複製を使用してキャプチャされます。キャプチャされた変更がログストリームにストリームされます。

  2. パブリッシャーはシステムログストリームのデータを消費します。

  3. パブリッシャーは、キャプチャしたデータ変更を TCP/IP 経由でターゲットエンジンに伝えます。Controller デーモンは、ソースとターゲット環境の間の通信を認証します。

  4. parallel 処理モードで動作している Replicator Engine は、データをワークキャッシュ単位に分割します。

  5. ワーカースレッドは、キャッシュからデータをキャプチャします。

  6. データはワーカースレッドから Amazon MSK トピックに公開されます。

  7. ユーザーは、コネクタ を使用して、Amazon MSK から DynamoDB 、Amazon S3、または OpenSearch Service などのターゲットに変更を適用します。

ツール

エピック

タスク説明必要なスキル

Connect CDC 4.1 をインストールします。

  1. Precisely Support チーム」に連絡して、ライセンスとインストールパッケージを入手してください。

  2. サンプル JCL を使用してConnect CDC 4.1 をインストールします。手順については、Precisely ドキュメントの 「JCL を使用して Connect CDC (SQData) をインストールする」を参照してください。

  3. SETPROG APF コマンドを実行して、Connect ロードライブラリ sqdata.v4nnn.LoadLib を認証します。

IBM メインフレーム開発者/管理者

zFS ディレクトリーをセットアップします。

zFS ディレクトリをセットアップするには、Precisely ドキュメントの 「zFS 変数ディレクトリ」の指示に従ってください。

注:コントローラーデーモンとキャプチャ/パブリッシャーエージェントの設定は z/OS UNIX システムサービスファイルシステム (zFS と呼ばれる) に保存されます。コントローラーデーモン、キャプチャ、ストレージ、パブリッシャーの各エージェントには、少数のファイルを保存するための事前定義済みの zFS ディレクトリ構造が必要です。

IBM メインフレーム開発者/管理者

TCP/IP ポートを設定します。

TCP/IP ポートを設定するには、Precisely ドキュメントの 「TCP/IP」 ポートに記載されている指示に従ってください。

注:コントローラーデーモンには、ソースシステムの TCP/IP ポートが必要です。ポートはターゲットシステム (キャプチャされた変更データが処理される) のエンジンによって参照されます。

IBM メインフレーム開発者/管理者

z/OS ログストリームを作成します。

z/OS ログストリーム」を作成するには、Precisely ドキュメントの 「z/OS システムログストリームの作成」 の指示に従ってください。

注:Connect は、移行中にログストリームを使用してソース環境とターゲット環境間でデータをキャプチャし、ストリーミングします。

z/OS を作成する JCL の例については LogStream、Precisely ドキュメントの「z/OS システム logStreams の作成」を参照してください。

IBM メインフレームデベロッパー

zFS ユーザーとスターティッドタスクの ID を識別して承認します。

RACF を使用して OMVS zFS ファイルシステムへのアクセスを許可します。JCL の例については、Precisely ドキュメントの 「zFS ユーザー ID とスターティッドタスク ID の識別と承認」を参照してください。

IBM メインフレーム開発者/管理者

z/OS 公開鍵/秘密鍵と認証鍵ファイルを生成します。

JCL を実行してkey pair を生成します。例としては、このパターンの追加情報セクションのキーペアの例を参照してください。

手順については、Precisely ドキュメントの 「z/OS 公開鍵、秘密鍵、および認証鍵ファイルの生成」を参照してください。

IBM メインフレーム開発者/管理者

CICS VSAM ログ複製をアクティブ化し、ログストリームに添付します。

次の JCL スクリプトを実行します。

//STEP1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=* //SYSIN DD * ALTER SQDATA.CICS.FILEA - LOGSTREAMID(SQDATA.VSAMCDC.LOG1) - LOGREPLICATE
IBM メインフレーム開発者/管理者

FCT を使用して VSAM ファイル回復ログを有効にします。

次のパラメータ変更を反映するようにファイル制御テーブル (FCT) を変更します。

Configure FCT Parms CEDA ALT FILE(name) GROUP(groupname) DSNAME(data set name) RECOVERY(NONE|BACKOUTONLY|ALL) FWDRECOVLOG(NO|1–99) BACKUPTYPE(STATIC|DYNAMIC) RECOVERY PARAMETERS RECOVery : None | Backoutonly | All Fwdrecovlog : No | 1-99 BAckuptype : Static | Dynamic
IBM メインフレーム開発者/管理者

パブリッシャーエージェントの CD CzLog を設定します。

  1. CD CzLog Publisher CAB ファイルを作成します。

  2. パブリッシュされたデータを暗号化します。

  3. CD CzLog Publisher Runtime JCL を準備します。

IBM メインフレーム開発者/管理者

コントローラーデーモンを有効にします。

  1. ISPF パネルを開き、以下のコマンドを実行して Precisely メニュー EXEC 'SQDATA.V4nnnnn.ISPFLIB(SQDC$STA)' 'SQDATA.V4nnnnn' を開きます。

  2. コントローラーデーモンを設定するには、メニューからオプション 2 を選択します。

IBM メインフレーム開発者/管理者

パブリッシャーを有効にします。

  1. ISPF パネルを開き、以下のコマンドを実行して Precisely メニュー EXEC 'SQDATA.V4nnnnn.ISPFLIB(SQDC$STA)' 'SQDATA.V4nnnnn' を開きます。

  2. パブリッシャーを設定するには、メニューからオプション 3 を選択し、I を選択して挿入します。

IBM メインフレーム開発者/管理者

ログストリームをアクティブ化します。

  1. ISPF パネルを開き、以下のコマンドを実行して Precisely メニュー EXEC 'SQDATA.V4nnnnn.ISPFLIB(SQDC$STA)' 'SQDATA.V4nnnnn' を開きます。

  2. パブリッシャーをセットアップするには、メニューからオプション 4 を選択し、I を選択して挿入します。次に、前の手順で作成したログストリームの名前を入力します。

IBM メインフレーム開発者/管理者
タスク説明必要なスキル

EC2 インスタンスに Precisely をインストールします。

Amazon EC2 用の Amazon Linux AMI に Connect from Precisely をインストールするには、Precisely ドキュメントの「UNIX へのConnect CDC (SQData) のインストール」の手順に従ってください。

AWS 全般

TCP/IP ポートを開きます。

インバウンドアクセスとアウトバウンドアクセス用のコントローラーデーモンポートを含むようにセキュリティグループを変更するには、Precisely ドキュメントの「TCP/IP」の指示に従ってください。

AWS 全般

ファイルディレクトリを作成する。

ファイルディレクトリを作成するには、Precisely ドキュメントの「ターゲット適用環境の準備」の指示に従ってください。

AWS 全般

Apply Engine の設定ファイルを作成します。

Apply Engine のワーキングディレクトリに Apply Engine 設定ファイルを作成します。次の例の設定ファイルは、ターゲットとして Apache Kafka を示しています。

builtin.features=SASL_SCRAM security.protocol=SASL_SSL sasl.mechanism=SCRAM-SHA-512 sasl.username= sasl.password= metadata.broker.list=

注:詳細については、Apache Kafka ドキュメントの「セキュリティ」 セクションを参照してください。

AWS 全般

Apply Engine 処理用のスクリプトを作成します。

Apply Engine のスクリプトを作成してソースデータを処理し、ソースデータをターゲットに複製します。詳しくは、Precisely ドキュメントの「適用エンジンスクリプトの作成」を参照してください。

AWS 全般

スクリプトを実行します。

SQDPARSESQDENG コマンドを使用して、スクリプトを実行します。詳細については、Precisely ドキュメントの 「ZoS 用のスクリプトを解析する」 を参照してください。

AWS 全般
タスク説明必要なスキル

CDC 処理の対象となる VSAM ファイルとターゲットテーブルのリストを検証します。

  1. レプリケーションログ、リカバリログ、FCT パラメータ、ログストリームを含む VSAM ファイルを検証します。

  2. 必要なスキーマ定義、テーブルアクセス、その他の基準に従ってテーブルが作成されているかどうかなど、ターゲットデータベーステーブルを検証します。

AWS 全般、メインフレーム

Connect CDC SQData プロダクトがリンクされていることを確認します。

テストジョブを実行し、このジョブからのリターンコードが 0 (成功) であることを確認します。

注:Connect CDC SQData Apply Engine のステータスメッセージには、アクティブな接続メッセージが表示されるはずです。

AWS 全般、メインフレーム
タスク説明必要なスキル

メインフレームでバッチジョブを実行します。

変更した JCL を使用してバッチアプリケーションジョブを実行します。変更した JCL には、次の処理を行うステップを含めてください。

  1. データファイルのバックアップを作成します。

  2. バックアップファイルと変更されたデータファイルを比較し、差分ファイルを生成して、メッセージに含まれるデルタレコード数を記録します。

  3. デルタファイルを z/OS ログストリームにプッシュします。

  4. JCL を実行します。JCL の例については、Precisely ドキュメンテーションの 「ファイル比較キャプチャ JCL の準備」 を参照してください。

AWS 全般、メインフレーム

ステップログを確認します。

ログストリームをチェックして、完了したメインフレームのバッチジョブの変更データが表示されることを確認します。

AWS 全般、メインフレーム

ソースデルタ変更とターゲットテーブルの数を検証します。

レコードが集計されていることを確認するには、以下を実行します。

  1. バッチ JCL メッセージからソースデルタ数を収集します。

  2. Apply Engine を監視して、VSAM ファイルに挿入、更新、または削除されたレコード数のレコードレベルのカウントを確認します。

  3. ターゲットテーブルにレコード数を問い合わせます。

  4. さまざまなレコード数をすべて比較して集計します。

AWS 全般、メインフレーム
タスク説明必要なスキル

CICS リージョンでオンライントランザクションを実行する。

  1. オンライントランザクションを実行してテストケースを検証します。

  2. トランザクション実行コードを検証します (RC=0 — 成功)。

IBM メインフレームデベロッパー

ステップログを確認します。

ログストリームに特定のレコードレベルの変更が反映されていることを確認します。

AWS メインフレームデベロッパー

ターゲットデータベースの数を確認します。

Apply Engine でレコードレベルのカウントを監視します。

正確には Linux です。

ターゲットデータベースのレコード数とデータレコードを検証します。

ターゲットデータベースにクエリを実行して、レコード数とデータレコードを検証します。

AWS 全般

関連リソース

追加情報

設定ファイルの例

これは、ソース環境がメインフレーム、ターゲット環境が Amazon MSK であるログストリームの設定ファイルの例です。

-- JOBNAME -- PASS THE SUBSCRIBER NAME -- REPORT  progress report will be produced after "n" (number) of Source records processed. JOBNAME VSMTOKFK; --REPORT EVERY 100; -- Change Op has been ‘I’ for insert, ‘D’ for delete , and ‘R’ for Replace. For RDS it is 'U' for update -- Character Encoding on z/OS is Code Page 1047, on Linux and UNIX it is Code Page 819 and on Windows, Code Page 1252 OPTIONS CDCOP('I', 'U', 'D'), PSEUDO NULL = NO, USE AVRO COMPATIBLE NAMES, APPLICATION ENCODING SCHEME = 1208; --       SOURCE DESCRIPTIONS BEGIN GROUP VSAM_SRC; DESCRIPTION COBOL ../copybk/ACCOUNT AS account_file; END GROUP; --       TARGET DESCRIPTIONS BEGIN GROUP VSAM_TGT; DESCRIPTION COBOL ../copybk/ACCOUNT AS account_file; END GROUP; --       SOURCE DATASTORE (IP & Publisher name) DATASTORE cdc://10.81.148.4:2626/vsmcdct/VSMTOKFK OF VSAMCDC AS CDCIN DESCRIBED BY GROUP VSAM_SRC ACCEPT ALL; --       TARGET DATASTORE(s) - Kafka and topic name DATASTORE 'kafka:///MSKTutorialTopic/key' OF JSON AS CDCOUT DESCRIBED BY GROUP VSAM_TGT FOR INSERT; --       MAIN SECTION PROCESS INTO CDCOUT SELECT { SETURL(CDCOUT, 'kafka:///MSKTutorialTopic/key') REMAP(CDCIN, account_file, GET_RAW_RECORD(CDCIN, AFTER), GET_RAW_RECORD(CDCIN, BEFORE)) REPLICATE(CDCOUT, account_file) } FROM CDCIN;

キーペアの例

JCL を実行してkey pair を生成する方法の例を次に示します。

//SQDUTIL EXEC PGM=SQDUTIL //SQDPUBL DD DSN=&USER..NACL.PUBLIC, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=21200), // DISP=(,CATLG,DELETE),UNIT=SYSDA, // SPACE=(TRK,(1,1)) //SQDPKEY DD DSN=&USER..NACL.PRIVATE, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=21200), // DISP=(,CATLG,DELETE),UNIT=SYSDA, // SPACE=(TRK,(1,1)) //SQDPARMS DD keygen //SYSPRINT DD SYSOUT= //SYSOUT DD SYSOUT=* //SQDLOG DD SYSOUT=* //*SQDLOG8 DD DUMMY