このタスクについて
CDC環境を定義すれば、ソースシステムでデータに加えられた変更を抽出するため、tAS400CDCコンポーネントを使ってTalend Studioでジョブを作成できます。
手順
-
[Palette] (パレット)からデザインワークスペースにtAS400CDCコンポーネントとtLogRowコンポーネントをドロップし、[Row] (行) > [Main] (メイン)接続を使って両コンポーネントをリンクさせます。
-
tAS400CDCコンポーネントをダブルクリックし、[Basic settings] (基本設定)ビューを開きます。
- [Property Type] (プロパティタイプ)ドロップダウンリストから[Repository] (リポジトリー)を選択し、[...]をクリックして、CDC接続に対応するスキーマをフェッチします。それに続くフィールドは、CDCデータベース接続に必要な情報が自動的に入力されます。
- [Schema] (スキーマ)ドロップダウンリストから[Repository] (リポジトリー)を選択し、[...]をクリックして、監視対象のAS/400テーブルに対応するスキーマをフェッチします。
- [Table Name] (テーブル名)フィールドに、CDCによって監視されるソーステーブルの名前(この例ではCUSTOMERS)を入力します。
- [Source Library] (ソースライブラリー)フィールドにソースライブラリーの名前を入力します。デフォルトでは、これはソースデータベースと同じ名前です。
- [Subscriber] (サブスクライバー)フィールドに変更されたデータを抽出するサブスクライバーの名前を入力します。デフォルトでは、サブスクライバー名はAPP1です。
- [Events to catch] (キャッチするイベント)フィールドで、キャッチするイベントに対応するチェックボックスをオンにします。
-
AS/400システムで
CHGJRN JRN(<Source_library_name>/<Journal_name>) JRNRCV(*GEN)
を実行し、ジャーナルから古いレシーバーを分離して新しいレシーバーを作成してそのジャーナルに装着することで、最後の変更を取得できます。tAS400CDCコンポーネントは、デフォルトで次のRUNCDCコマンドを実行します。
<CDC_library_name>/RUNCDC FILE(<Source_library_name>/<Source_table_name>) LIBOUT(<CDC_library_name>) MODE(*DETACHED) MBROPT(*ADD)
また、tAS400CDCコンポーネントの[Advanced Settings] (詳細設定)ビューで[Customize Command] (コマンドをカスタマイズ)チェックボックスを選択し、次のカスタムコマンドを追加すれば、分離と装着のプロセスを自動化できます。
<CDC_library_name>/RUNCDC FILE(<Source_library_name>/<Source_table_name>) LIBOUT(<CDC_library_name>) MODE(*DETACHED) MBROPT(*ADD) DTCHJRN(*YES)
なお、tAS400CDCコンポーネントにあるRUNCDCコマンドのデフォルトセットアップでは1つのテーブルの変更しか読み取りませんのでご注意ください。複数(最大300)のテーブルの変更を同時に読み取ろうとしており、それらのテーブルがすべて同じジャーナルにある場合は、ジョブ内で複数のtAS400CDCコンポーネントを使い、
というカスタムコマンドを最初のtAS400CDCコンポーネント用に追加します。他のtAS400CDCコンポーネントに対しては、[Advanced settings] (詳細設定)ビューで[Disable Command] (コマンドを無効化)チェックボックスを選択してこのコマンドを無効にします。最初のtAS400CDCコンポーネントによってRUNCDCコマンドが実行され、全ソーステーブルの変更データが抽出されます。その他のtAS400CDCコンポーネントは、最初のtAS400CDCコンポーネントによって準備されたデータを読み取るだけとなります。たとえば、次のコマンドは、同じジャーナルにある2つのテーブルEMPLOYEE1およびEMPLOYEE2から変更を読み取ります。このページの左パネルにある[Downloads] (ダウンロード)タブからtAS400CDC-multiple-tables.zipというサンプルジョブというを取得できます。<CDC_library_name>/RUNCDC FILE(<Source_library_name>/<Source_table_name1> <Source_library_name>/<Source_table_name2> ... <Source_library_name>/<Source_table_nameN>) LIBOUT(<CDC_library_name>) MODE(*DETACHED) MBROPT(*ADD)
TALENDCDC/RUNCDC FILE(TALEND/EMPLOYEE1 TALEND/EMPLOYEE2) LIBOUT(TALENDCDC) MODE(*DETACHED) MBROPT(*ADD)"
また、どのtAS400CDCコンポーネントについてもコマンドを無効にし、AS/400システムでカスタムコマンドを手動で実行することもできます。
-
ジョブを保存し、F6を押して実行します。
コンソールで、[View All Changes] (すべての変更を表示)ダイアログボックスで表示される内容に相当する出力結果を見ることができます。