翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Precisely からのConnect を使用して VSAM ファイルを Amazon RDS または Amazon MSK に移行およびレプリケート
プラチ・カンナ(AWS)とブーパシー・ゴパルサミー(AWS)によって作成されました
環境:PoC またはパイロット | ソース:VSAM | ターゲットデータベース |
Rタイプ:リアーキテクト | ワークロード:IBM | テクノロジー: メインフレーム、モダナイゼーション |
AWS サービス: Amazon MSK、Amazon RDS、AWS Mainframe Modernization |
[概要]
このパターンは、「Connect
前提条件と制限
前提条件
「IBM z/OS V2R1
」またはそれ以降 「z/OS 用 CICS トランザクションサーバ (CICS TS) V5.1
」以降 (CICS/VSAM データキャプチャ) 「IBM MQ 8.0
」またはそれ以降 「z/OS セキュリティー要件
」(SQData ロード・ライブラリーの APF 認証など) への準拠 VSAM リカバリーログがオンになっています
アクティブなAWS アカウント
レガシープラットフォームからアクセス可能なサブネットを持つ「 Amazon 仮想プライベートクラウド (VPC)」
Precisely が提供する VSAM Connect ライセンス
制約事項
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
![Diagram showing data flow from on-premises mainframe to AWS クラウド, including VSAM files and Amazon RDS.](images/pattern-img/4ee183bd-1c0d-449d-8cdc-eb6e2c41a695/images/47cefbde-e0c8-4c36-ba48-cccc2c443074.png)
この図は、次のバッチワークフローを示しています。
Connect は、バックアップファイルの VSAM ファイルを比較して変更を特定することでファイルへの変更をキャプチャし、その変更をログストリームに送信します。
パブリッシャーはシステムログストリームのデータを消費します。
パブリッシャーは、キャプチャしたデータ変更を TCP/IP 経由でターゲットエンジンに伝えます。 Controller デーモンは、ソースとターゲット環境の間の通信を認証します。
ターゲット環境のApply Engineは、パブリッシャーエージェントから変更を受け取り、リレーショナルデータベースまたは非リレーショナルデータベースに適用します。
この図は、次のオンラインワークフローを示しています。
Connect は、ログ複製を使用してオンラインファイルの変更をキャプチャし、キャプチャした変更をログストリームにストリーミングします。
パブリッシャーはシステムログストリームのデータを消費します。
パブリッシャーは、キャプチャしたデータ変更を TCP/IP 経由でターゲットエンジンに伝えます。Controller デーモンは、ソースとターゲット環境の間の通信を認証します。
ターゲット環境のApply Engineは、パブリッシャーエージェントから変更を受け取り、リレーショナルデータベースまたは非リレーショナルデータベースに適用します。
VSAM ファイルを Amazon MSK に移行しています。
次の図は、VSAM データ構造をメインフレームから Amazon MSK にハイパフォーマンスモードでストリーミングし、Amazon MSK と統合する JSON または AVRO スキーマ変換を自動的に生成する方法を示しています。
![Diagram showing data flow between on-premises mainframe and AWS クラウド services.](images/pattern-img/4ee183bd-1c0d-449d-8cdc-eb6e2c41a695/images/13eb27ad-c0d2-489b-91e1-5b2a729fb8dd.png)
この図は、次のバッチワークフローを示しています。
Connect は、CICS VR を使用するか、バックアップファイルの VSAM ファイルを比較して変更を特定することにより、変更をファイルにキャプチャします。キャプチャされた変更はログストリームに送信されます。
パブリッシャーはシステムログストリームのデータを消費します。
パブリッシャーは、キャプチャしたデータ変更を TCP/IP 経由でターゲットエンジンに伝えます。Controller デーモンは、ソースとターゲット環境の間の通信を認証します。
parallel 処理モードで動作している Replicator Engine は、データをワークキャッシュ単位に分割します。
ワーカースレッドは、キャッシュからデータをキャプチャします。
データはワーカースレッドから Amazon MSK トピックに公開されます。
ユーザーは、コネクタ を使用して、Amazon DynamoDB 、Amazon Simple Storage Service (Amazon S3)、Amazon OpenSearch Service などのターゲットに Amazon MSK からの変更を適用します。
この図は、次のオンラインワークフローを示しています。
オンラインファイル内の変更は、ログ複製を使用してキャプチャされます。キャプチャされた変更がログストリームにストリームされます。
パブリッシャーはシステムログストリームのデータを消費します。
パブリッシャーは、キャプチャしたデータ変更を TCP/IP 経由でターゲットエンジンに伝えます。Controller デーモンは、ソースとターゲット環境の間の通信を認証します。
parallel 処理モードで動作している Replicator Engine は、データをワークキャッシュ単位に分割します。
ワーカースレッドは、キャッシュからデータをキャプチャします。
データはワーカースレッドから Amazon MSK トピックに公開されます。
ユーザーは、コネクタ を使用して、Amazon MSK から DynamoDB 、Amazon S3、または OpenSearch Service などのターゲットに変更を適用します。
ツール
「Amazon Managed Streaming for Apache Kafka (Amazon MSK)」 は、Apache Kafka を使ってストリーミングデータを処理するアプリケーションを、構築および実行することを支援するフルマネージドサービスです。
Amazon Relational Database Service (Amazon RDS) を使用して、AWS クラウドでリレーショナルデータベース (DB) をセットアップ、運用、スケーリングできます。
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
Connect CDC 4.1 をインストールします。 |
| 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 ログストリーム 注: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 スクリプトを実行します。
| IBM メインフレーム開発者/管理者 |
FCT を使用して VSAM ファイル回復ログを有効にします。 | 次のパラメータ変更を反映するようにファイル制御テーブル (FCT) を変更します。
| IBM メインフレーム開発者/管理者 |
パブリッシャーエージェントの CD CzLog を設定します。 |
| IBM メインフレーム開発者/管理者 |
コントローラーデーモンを有効にします。 |
| IBM メインフレーム開発者/管理者 |
パブリッシャーを有効にします。 |
| IBM メインフレーム開発者/管理者 |
ログストリームをアクティブ化します。 |
| 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 を示しています。
注:詳細については、Apache Kafka ドキュメントの「セキュリティ | AWS 全般 |
Apply Engine 処理用のスクリプトを作成します。 | Apply Engine のスクリプトを作成してソースデータを処理し、ソースデータをターゲットに複製します。詳しくは、Precisely ドキュメントの「適用エンジンスクリプトの作成 | AWS 全般 |
スクリプトを実行します。 | | AWS 全般 |
タスク | 説明 | 必要なスキル |
---|---|---|
CDC 処理の対象となる VSAM ファイルとターゲットテーブルのリストを検証します。 |
| AWS 全般、メインフレーム |
Connect CDC SQData プロダクトがリンクされていることを確認します。 | テストジョブを実行し、このジョブからのリターンコードが 0 (成功) であることを確認します。 注:Connect CDC SQData Apply Engine のステータスメッセージには、アクティブな接続メッセージが表示されるはずです。 | AWS 全般、メインフレーム |
タスク | 説明 | 必要なスキル |
---|---|---|
メインフレームでバッチジョブを実行します。 | 変更した JCL を使用してバッチアプリケーションジョブを実行します。変更した JCL には、次の処理を行うステップを含めてください。
| AWS 全般、メインフレーム |
ステップログを確認します。 | ログストリームをチェックして、完了したメインフレームのバッチジョブの変更データが表示されることを確認します。 | AWS 全般、メインフレーム |
ソースデルタ変更とターゲットテーブルの数を検証します。 | レコードが集計されていることを確認するには、以下を実行します。
| AWS 全般、メインフレーム |
タスク | 説明 | 必要なスキル |
---|---|---|
CICS リージョンでオンライントランザクションを実行する。 |
| IBM メインフレームデベロッパー |
ステップログを確認します。 | ログストリームに特定のレコードレベルの変更が反映されていることを確認します。 | AWS メインフレームデベロッパー |
ターゲットデータベースの数を確認します。 | Apply Engine でレコードレベルのカウントを監視します。 | 正確には Linux です。 |
ターゲットデータベースのレコード数とデータレコードを検証します。 | ターゲットデータベースにクエリを実行して、レコード数とデータレコードを検証します。 | AWS 全般 |
関連リソース
「VSAM z/OS
」 (正確なドキュメンテーション) 「適用エンジン
」 (Precisely ドキュメンテーション) 「レプリケーターエンジン
」 (Precisely ドキュメンテーション) 「ログストリーム
」 (IBM ドキュメント)
追加情報
設定ファイルの例
これは、ソース環境がメインフレーム、ターゲット環境が 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