# XStreamモードを使用したCDCの設定

このセクションでは、でのXStream OutおよびXStream InTalend Studioの設定について詳細に説明します。

## Talend StudioでXStream Outを設定

### 手順

1. [Repository] (リポジトリー)ツリービューで、OracleデータベースへのOCI接続タイプを使用してデータベース接続を設定し、データの変更をキャプチャーするソーステーブルのスキーマを取得します。この例では、ソーステーブルはPERSONです。データベース接続の設定方法およびテーブルスキーマの取得方法の詳細は、[データベースメタデータを一元管理](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0/centralizing-database-metadata)をご覧ください。

   !['PERSON'テーブルスキーマの例。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/studio_di_esb-cdc_xstreamout_setupconnection.png)
2. 新しく作成されたOracleデータベース接続の下で[CDC Foundation] (CDC設定)を右クリックして、コンテキストメニューから[Create CDC] (CDCを作成)を選択します。[Create Change Data Capture] (CDCを作成)ダイアログボックスが開きます。
3. [XStream mode] (XStreamモード)を選択して[Show sample initialization script] (サンプル初期化スクリプトを表示)をクリックします。[Sample Initialization Script] (サンプル初期化スクリプト)ダイアログボックスが開きます。

   ![\[Sample Initialization Script\] (サンプル初期化スクリプト)ダイアログボックス。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/studio_di_esb-cdc_xstreamout_createcdc_script.png)

   これはOracle 12cサーバー上でXStreamを設定するためのサンプルスクリプトにすぎません。使用する設定に応じてユーザー名、パスワード、およびテーブルスペース情報をアップデートし、Oracleでステートメントおよびプロシージャーを実行する必要があります。詳細は、[XStreamモードの前提条件](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0/prerequisites-for-xstream-mode)をご覧ください。

   OKをクリックして、[Sample Initialization Script] (サンプル初期化スクリプト)ダイアログボックスを閉じます。

   [Finish] (終了)をクリックしてOracleのCDCを作成し、[Create Change Data Capture] (CDCを作成)ダイアログボックスを閉じます。
4. ソーステーブルを右クリックし、コンテキストメニューから[add CDC] (CDCの追加)を選択します。

   ![ソーステーブルのコンテキストメニュー。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/studio_di_esb-cdc_xstreamout_addcdc.png)
5. ソーステーブルを右クリックし、コンテキストメニューから[Generate XStreamsOut Script] (XStreamsOutスクリプトの生成)を選択します。[XStreamsOut generation script] (XStreamsOut生成スクリプト)ダイアログボックスが開きます。
6. [XStreams server name] (XStreamサーバー名)フィールドにアウトバウンドサーバー名を入力します。名前は一意にする必要があります。
7. 対応するInclude in scriptカラムのチェックボックスをオンにして、ソーステーブルを識別します。

   ![\[XStreamsOut generation script\] (XStreamsOut生成スクリプト)ダイアログボックス内の設定。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/studio_di_esb-cdc_xstreamout_generatescript.png)
8. [Generate Script] (スクリプトの生成)をクリックします。[XStreamsOut Script] (XStreamsOutスクリプト)ダイアログボックスが表示されます。
9. [Execute] (実行)をクリックしてOracleのXStreamアウトバウンドサーバーを作成します。

   このスクリプトの実行が失敗した場合は、OracleデータベースにXStream管理者として接続し、Oracleでスクリプトを実行できます。
10. XStream管理者としてOracleデータベースに接続し、次のステートメントを実行してアウトバウンドサーバーのステータスを確認します。
    ```
    select apply_name, status from dba_apply;
    ```

    アウトバウンドサーバーを削除する必要がある場合、次のステートメントを実行します。
    ```
    exec DBMS_XSTREAM_ADM.DROP_OUTBOUND('xout'); 
                         exec DBMS_XSTREAM_ADM.REMOVE_XSTREAM_CONFIGURATION(container => 'ALL');
    ```

## Talend StudioでXStream Inを設定

### 手順

1. [Repository] (リポジトリー)ツリービューで、OCI接続タイプを使用したOracleデータベースへのデータベース接続を設定し、データの変更の複製先となるターゲットテーブルのスキーマを取得します。この例では、ターゲットテーブルはPERSON\_BAKです。データベース接続の設定方法およびテーブルスキーマの取得方法の詳細は、[データベースメタデータを一元管理](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0/centralizing-database-metadata)をご覧ください。

   !['PERSON_BAK'テーブルスキーマのの例。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/studio_di_esb-cdc_xstreamin_setupconnection.png)
2. 新しく作成されたOracleデータベース接続の下で[CDC Foundation] (CDC設定)を右クリックして、コンテキストメニューから[Create CDC] (CDCを作成)を選択します。[Create Change Data Capture] (CDCを作成)ダイアログボックスが開きます。
3. [Options] (オプション)エリアで[XStream mode] (XStreamモード)を選択して[Show sample initialization script] (サンプル初期化スクリプトを表示)をクリックします。[Sample Initialization Script] (サンプル初期化スクリプト)ダイアログボックスが開きます。

   ![\[Sample Initialization Script\] (サンプル初期化スクリプト)ダイアログボックス。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/studio_di_esb-cdc_xstreamin_createcdc_script.png)

   これはOracle 12cサーバー上でXStreamを設定するためのサンプルスクリプトにすぎません。使用する設定に応じてユーザー名、パスワード、およびテーブルスペース情報をアップデートし、Oracleでステートメントおよびプロシージャーを実行する必要があります。詳細は、[XStreamモードの前提条件](https://help.qlik.com/talend/ja-JP/studio-user-guide/8.0/prerequisites-for-xstream-mode)をご覧ください。

   OKをクリックして、[Sample Initialization Script] (サンプル初期化スクリプト)ダイアログボックスを閉じます。

   [Finish] (終了)をクリックしてCDCを作成し、[Create Change Data Capture] (CDCを作成)ダイアログボックスを閉じます。
4. ターゲットテーブルを右クリックし、コンテキストメニューから[add CDC] (CDCの追加)を選択します。

   ![ソーステーブルのコンテキストメニュー。](https://help.qlik.com/talend/ja-JP/studio-user-guide/Resources/images/studio_di_esb-cdc_xstreamin_addcdc.png)
5. ターゲットテーブルを右クリックし、コンテキストメニューから[Generate XStreamsIn Script] (XStreamsInスクリプトの生成)を選択します。[XStreamsIn generation script] (XStreamsIn生成スクリプト)ダイアログボックスが開きます。
6. [XStreams server name] (XStreamサーバー名)フィールドにインバウンドサーバー名を入力します。
7. [Queue name] (キュー名)フィールドにインバウンドサーバーのキューの名前を入力します。
8. [Generate Script] (スクリプトの生成)をクリックします。XStream Inスクリプトが生成され表示されます。
9. [Execute] (実行)をクリックしてOracleのXStreamインバウンドサーバーを作成します。

   このスクリプトの実行が失敗した場合は、OracleデータベースにXStream管理者として接続し、Oracleでスクリプトを実行できます。
10. XStream管理者としてOracleデータベースに接続し、次のステートメントを実行してインバウンドサーバーのステータスを確認します。
    ```
    select apply_name, status from dba_apply;
    ```

    インバウンドサーバーが無効な場合、次のステートメントを実行してインバウンドサーバーを開始します。
    ```
    exec DBMS_APPLY_ADM.START_APPLY('xin');
    ```

    インバウンドサーバーを削除する必要がある場合、次のステートメントを実行します。
    ```
    exec DBMS_XSTREAM_ADM.DROP_INBOUND('xin');
                         exec DBMS_XSTREAM_ADM.REMOVE_QUEUE('xin_queue'); 
                         exec DBMS_APPLY_ADM.DELETE_ALL_ERRORS(apply_name => 'xin');
    ```