# IBM DB2 for iSeries

このセクションでは、データ タスクで IBM DB2 for iSeries ソースをセット アップする方法について説明します。データ タスクを開始する前に、[前提条件](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/IBM4DB2-iseries/prereq-idb2.htm) を満たしていることを確認し、[必要な権限](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Global_Common/Content/SharedReplicateHDD/IBM4DB2-iseries/required_permissions_iseries.htm) を設定して、[制限と考慮事項](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Global_Common/Content/SharedReplicateHDD/IBM4DB2-iseries/iseries_limitations.htm) をよく理解しておいてください。

## 接続プロパティの設定

このセクションでは、使用可能な接続プロパティについて説明します。特に指定がない限り、すべてのプロパティが必要です。

コネクタを開くには、次の手順を実行します。

1. [接続] で、[接続を作成] をクリックします。

2. IBM DB2 for iSeries ソース コネクタを選択し、次の設定を指定します。

### データ ソース

* データ ゲートウェイ

  データの移動に使用する Data Movement gateway を選択します。

  Data Movement gateway の詳細については、「[Qlik データ ゲートウェイ - データ移動](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm)」を参照してください。

* サーバー: IBM DB2 for iSeries サーバーの IP アドレスまたはホスト名です。

### アカウントのプロパティ

* ユーザー名: IBM DB2 for iSeries サーバーへのアクセスに必要なユーザー名です。

* パスワード: IBM DB2 for iSeries サーバーにアクセスするために必要なパスワードです。

### データベースのプロパティ

* テーブルとスキーマのシステム名を使用: IBM DB2 for iSeries ソース コネクタ は、SQL 名 (長さ無制限) に基づいてテーブルをランディングします。 IBM DB2 for iSeries データベースが SQL 名を使用していない場合は、システム名の維持を希望していると考えられます。
* 相対レコード番号 (RRN): 以下の [ターゲット テーブルへの RRN 列の追加](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/IBM4DB2-iseries/IBM4DB2-iseries-source.htm#top) を参照してください。

### CDC のプロパティ

* ジャーナル名: ソース テーブルを含むジャーナルの名前です。

  関連項目: [CDC 前提条件](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/IBM4DB2-iseries/prereq-idb2.htm#CDC)

* ジャーナル ライブラリ: ジャーナルが置かれているライブラリの名前です。

  関連項目: [CDC 前提条件](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/IBM4DB2-iseries/prereq-idb2.htm#CDC)

* タスク開始時のジャーナル検証をスキップする: IBM DB2 for iSeries 7.3 以降、Qlik Talend Data Integration は指定されたジャーナルを自動的に検証します。これには、ジャーナルが存在すること、およびランディング用に選択されたテーブルが含まれていることの確認が含まれます。ランディングに多数のテーブルが選択されていると、この処理には時間がかかる場合があります。このような場合、指定されたジャーナルが存在し、正しいテーブルが含まれていることが確実なときには、検証フェーズをスキップできます。

* 次のオプションの詳細については、以下の「[R4I UDTF の変更キャプチャへの使用](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/SourcesConnections/IBM4DB2-iseries/IBM4DB2-iseries-source.htm#Using)」を参照してください。

  * UDTF キャプチャの有効化
    * CDC リーダー UDTF 名
    * UDTF 結果セット サイズ (MB)

* 変更の確認間隔 (秒): ソース データベースの変更を確認する頻度です。

### コード ページへの CCSID マッピングの上書き

[文字セット マッピングに対する CCSID] 項目に、次の形式で CCSID とコード ページを入力します (スペースなし、カンマ区切り):

CCSID1,codepage1,CCSID2,codepage2,...

文字セット (コード ページ) は、適切な形式で指定する必要があります (例: ibm-1148\_P100-1997)。有効な形式のリストについては、[ICU Converter Explorer](http://demo.icu-project.org/icu-bin/convexp) を参照してください。

#### カスタム コード ページへの変換

ソース データセットが誤った CCSID で定義されており、正しい定義が実際に UCM ファイル内にある場合は、次の手順を実行します。

1. Data Movement gateway マシンの場合:

   1. ICU パッケージがインストールされていない場合は、シェル プロンプトを開いて [ICU パッケージ](https://icu.unicode.org/home)をインストールします。

   2. 作業ディレクトリを &lt;product\_dir&gt;/bin に変更します。

      既定の &lt;product\_dir&gt; は /opt/qlik/gateway/movement です。

   3. ファイル拡張子を **.ucm** とするマッピング データ ファイルを作成します。

      情報メモ

      既存の UCM ファイルを編集する場合は、`<code_set_name>` プロパティと `<icu:alias>` プロパティの値も変更する必要があります。ファイルに `<icu:alias>` プロパティが含まれていない場合は、`<code_set_name>` プロパティの値のみを変更します。

   4. 次のコマンドを実行して、UCM ファイルの CNV ファイルを作成します。

      `makeconv -v <file_name>.ucm`

      例:

      `makeconv -v 1047_EX.ucm`

      これにより、UCM ファイルと同じ名前の CNV ファイルが作成されます (例: 1047\_EX.cnv)。

   5. &lt;product\_dir&gt;/bin に icudt&lt;XX&gt;l という新しいサブフォルダーを作成します。XX は、 libicudata.so.&lt;XX&gt; のファイル名の数字と同じにします。

      たとえば、共有オブジェクト ファイル名が libicudata.so.69 の場合、icudt69l という名前の新しいサブフォルダーを作成します。

   6. CNV ファイルを、先ほど作成したサブフォルダー (上記の例では &lt;product\_dir&gt;/bin/icudt69l) にコピーします。

2. コネクタ ダイアログの [文字セット マッピングに対する CCSID] 項目に、元のソース CCSID 番号に続いて拡張子なしの CNV ファイル名を入力します。

   例:

   1047,1047\_EX

3. Data Movement gateway マシンで、次のコマンドを使用して Data Movement gateway サービスを再起動します。

   sudo systemctl restart repagent

### 内部プロパティ

内部プロパティは、特殊なユース ケース向けであるため、ダイアログで公開されません。Qlik サポートによって指示があった場合にのみ使用する必要があります。

項目右側にある the 新規作成 icon と the キャンセル icon ボタンを使用して、必要に応じてプロパティを追加したり削除したりします。

### 名前

ソース接続の表示名です。

## ターゲット テーブルへの RRN 列の追加

プライマリ キー、一意のインデックス、または一意のインデックスとして使用可能な列の組み合わせがないソース テーブルの場合、相対記録番号 (RRN) を使って登録する必要があります。

次のオプションの 1 つを選択します:

* プライマリ キーまたは一意のインデックスなしで、ターゲット テーブルに RRN 列を追加するRRN 列は自動的にターゲット テーブルのプライマリ キーになります。

* RRN 列をすべてのターゲット テーブルに追加する

* RNN 列をターゲット テーブルに追加しない

\*AFTER イメージでジャーナリングされたテーブルに対して、自動コミット モードでの DELETE 操作をサポートするには、次を実行します。

1. [RRN 列をすべてのターゲット テーブルに追加する] オプションを有効にします。

2. ターゲットの新しい RRN 列をテーブル唯一のプライマリ キーとしてマークします (変換を使用)。

   プライマリ キーとマークせずに RRN 列を追加すると、DELETE 操作が実行された場合、テーブルが一時停止されます。

[RRN 列を追加する] オプションの 1 つを選択した場合、変更テーブルとターゲット テーブルの両方に余分な列「ATTREP\_RRN of type INTEGER」が入り、各行に一意の値が含まれます。この列には、各ソース テーブル行に対応する RRN が含まれます。

情報メモ

IBM DB2 for iSeries RRN の値は、ファイル構造でテーブル データを含む行の正確な位置を示します。テーブルを並べ替えると、テーブルが再構築されて*新規* RRN が各行に割り当てられます。そのため、RRN をターゲット キーとして使用している状態でテーブルを並べ替えることはできるだけ回避する必要があります。こういった並べ替えが不可避である場合、並べ替えたテーブルを即時にリロードして、ターゲットに変更が適用された場合の想定外の動作を防止してください (例: DELETE の失敗、INSERT の重複など)。

## R4I UDTF の変更キャプチャへの使用

既定では、IBM DB2 for iSeries からキャプチャされた変更は、標準の display\_journal 関数を使って Data Movement gateway マシンでフィルタリングされます。変更が多い場合、これにより変更処理パフォーマンスに影響が生じる可能性があります。

R4I UDTF on IBM DB2 for iSeries をインストールすると、キャプチャされた変更を Data Movement gateway マシンではなく IBM DB2 for iSeries でフィルタリングできるため、CDC パフォーマンスを大幅に改善できます。

警告メモR4I UDTF は、タスクごとに最大 300 個のテーブルをキャプチャできます。タスクごとに 300 個を超えるテーブルをキャプチャする必要がある場合は、このオプションを使用しないでください。

R4I UDTF を使って変更キャプチャを設定するには:

1. [製品のダウンロード](https://community.qlik.com/t5/Downloads/tkb-p/Downloads)に移動します。

2. Qlik [データ統合] を選択します。

3. 製品リストを下にスクロールして、Replicate を選択します。

4. ダウンロード リンク列で、QlikReplicate\_\_R4I.zip のリンクをクリックしてダウンロードを開始します。

5. IBM DB2 for iSeries サーバーに R4I UDTF をインストールします。

6. [UDTF キャプチャを有効化する] オプションを選択します。

7. R4I インストール中に既定の CDC リーダーの UDTF 名を変更した場合、[CDC リーダー UDTF 名] 項目で新しい名前を指定します。

8. [UDTF 結果セット サイズ (MB)] 項目で、R4I UDTF によって返された結果セット バッファの最大サイズを設定できます。結果セットが大きいほど通常はパフォーマンスが改善しますが、DB2 メモリー消費にも影響します。DB2 のメモリ不足により、ターゲット上でデータの不整合 (記録が部分的にキャプチャされるため) が発生する可能性があるため、結果セットのサイズを大きくしたい場合は、まずテスト環境でタスクを実行することがベスト プラクティスとなります。