この章の内容は、次のとおりです。
WebLogicアプリケーション・サーバーを使用して、Oracle Connect CDCアダプタをデプロイできます。この項では、CDCアダプタをデプロイする方法、必要な接続を設定する方法およびCDCストリーム位置表を構築する方法について説明します。
この章の内容は、次のとおりです。
CDCアダプタごとに1つのCDCストリーム位置表を作成する必要があります。CDCストリーム位置表には、CDCプロセス(取得対象の表)ごとに、そのストリーム位置とXAトランザクションを制御するための行が1行含まれています。Oracleデータベースの表の定義には、次のSQL文が使用されます。
create table CDC_STREAM_POSITIONS(TABLE_NAME varchar(127) not null, STREAM_POSITION varchar(127), PREPARED_STREAM_POSITION varchar(127), ROLLBACK_STREAM_POSITION varchar(127), NEW_STREAM_POSITION varchar(127), XID_FORMAT int, XID_BRANCH varchar(128), XID_GLOBAL varchar(128));create unique index CDC_STREAM_POSITIONS_INDEX on CDC_STREAM_POSITIONS (TABLE_NAME);
任意の表名を使用できますが、列名は変更できません。
次の表に、CDCストリーム位置表の列を示します。
表3-1 CDCストリーム位置表
列 | 説明 |
---|---|
|
CDC表の名前。 この列のデータは変更しないでください。 |
|
現在の表のCDCプロセスで最後にコミットされたストリーム位置。 この列のデータは変更しないでください。 |
|
現在の表のCDCプロセスで最後に準備されたストリーム位置。 この列のデータは変更しないでください。 |
ロールバック・ループの場合、この列には、ロールバック時に発生したイベントのストリーム位置が含まれています。 |
|
|
この列に有効なストリーム位置の値を入力して、現在のストリーム位置を手動で変更できます。この列を更新する前に、対応するCDCプロセスを非アクティブ化してください。 注意: XID_FORMAT列がNULL値であることを確認してください。 |
|
最後に準備されたXIDフィールド。 |
CDCストリーム位置表へのアクセスを提供するWebLogicデータソースを構成する必要があります。
Oracle ConnectのRARをWebLogicサーバーにデプロイします。
各CDCアダプタに対応するコネクション・ファクトリを作成する場合があります。
次の表は、DB2 CDC Adapterに関連するコネクション・ファクトリのプロパティを説明しています。その他のプロパティの値は変更しないでください。
表3-2 CDCインバウンド・プロセスの接続プロパティ
プロパティ | 説明 |
---|---|
|
必須。使用するアダプタの名前を設定します。アダプタは、Oracle Studioを使用してOracle Connectサーバーに定義します。 |
|
必須。Oracle Connectデーモンが実行されているサーバーの名前をTCP/IPアドレスまたはホスト名で入力します。デーモンの詳細は、「デーモンの高度なチューニング」を参照してください。 |
|
必須。使用するOracle Connectサーバー・ワークスペースの名前を指定します。ワークスペースの詳細は、「ワークスペース」を参照してください。 |
|
オプション。サーバー上でOracle Connectデーモンが実行されているTCP/IPポートを指定します。デフォルト・ポートは |
|
オプション。Oracle Connectサーバーにアクセス可能なユーザーを指定します。ユーザーは、Oracle Connectデーモン構成で定義されます。Oracle Connectサーバーへのアクセスを許可されるユーザーの詳細は、デーモンの「セキュリティ」およびワークスペースの「セキュリティ」を参照してください。 |
|
オプション。ユーザーの有効なパスワードを指定します。 |
|
オプション。使用するファイアウォール・プロトコルを |
|
オプション。接続タイムアウトを秒単位で指定します。デフォルトは0であり、接続タイムアウトがないことを示しています。 |
|
オプション。使用する暗号化プロトコルの名前を設定します。デフォルトでは、 |
|
オプション。使用する対称暗号化キーの名前を指定します。 |
|
オプション。使用する対称暗号化キーの値を指定します。 |
オプション。リソース・アダプタが、サーバーでイベントが検出されない場合に次のリクエストを発行するまで待機する時間を指定します。デフォルト値は |
|
|
必須。cdcStreamPositionsTableへのアクセスを提供するJDBCデータソースのJNDIロケーション。 |
CDCインバウンド・プロセスを制御するために使用されるSQL表。詳細は、「CDCストリーム位置表の定義」を参照してください。 |
この章の内容は、次のとおりです。
Oracle Studioを使用して、CDCアダプタのバインディング・ファイルとWSDLファイルを作成するには、次の手順を実行します。
「スタート」メニューから、「プログラム」→「Oracle」→「Studio」を選択します。
「Design」パースペクティブの「Configuration」ビューで、「Machine」フォルダを開きます。
CDCステージング領域が含まれているマシンを開きます。
「Bindings」を開きます。このコンピュータ上で使用可能なバインディング構成が表示されます。
作成したCDCステージング領域のバインディングを開きます。バインディングの名前は、Oracle Studioで作成したCDCソリューションのプロジェクト名に、_SA
という接尾辞が付いたものです。
「Adapters」フォルダを開き、アダプタを右クリックして「Generate JCA Configuation Files」を選択します。
「JCA Configuration Files」ダイアログ・ボックスが表示されます。
「Save to」フィールドに、作成されるファイルの保存場所のパスを入力するか、「Browse」を選択して場所を参照します。
必要に応じて、「JNDI Location」のWebLogicコネクション・ファクトリのJNDIロケーションのデフォルト値を変更します。
「OK」をクリックすると、指定した場所にファイルが作成されます。
「View Genereated Content」ダイアログ・ボックスが表示されます。ここでは、作成されたバインディング・ファイル(*.jca
)とWSDLファイルへのリンクが提供されます。これらのファイルを表示または編集する場合は、ダイアログ・ボックスの該当するリンクをクリックします。
これらのファイルは、BPEL Process Managerまたはメディエータを使用するときに使用します。
Oracle Studioで生成されたWSDLファイルは編集しないでください。バインディング・ファイルは、AttuCDCActivationSpec
プロパティを構成するために編集する場合があります。このプロパティのほとんどは、コネクション・ファクトリを使用して指定することもできます。コネクション・ファクトリの構成方法の詳細は、「DB2 CDC Adapterコネクション・ファクトリの構成」を参照してください。また、バインディング・ファイルのretryIntervalプロパティの構成が必要になる場合もあります。
バインディング・ファイルでは、アダプタのコネクション・ファクトリの名前が<service>
セクションの<jca:address>
要素のadapterInstanceJndi
属性として指定されます。コネクション・ファクトリがアプリケーション・サーバーに存在する場合は、そのプロパティが使用されます。それ以外の場合は、AttuCDCActivationSpec
によって指定されたプロパティが使用されます。値がコネクション・ファクトリとAttuCDCActivationSpec
の両方で指定されている場合は、AttuCDCActivationSpec
プロパティの値がコネクション・ファクトリの値よりも優先されます。コネクション・ファクトリに指定された値を使用する場合は、バインディング・ファイルからプロパティを削除する必要があります。
次にCDCバインディング・ファイルの例を示します。
<?xml version="1.0" encoding="UTF-8"?><adapter-config adapter="Legacy Adapter" name="calc" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata"> <connection-factory UIConnectionName="pcbpel" csfKey="pcbpel" location="eis/legacy/calc"/> <endpoint-interaction operation="add" portType="calcPortType"> <interaction-spec className="com.attunity.adapter.oracle.AttuInteractionSpec"> <property name="FunctionName" value="add"/> <property name="ExecutionTimeout" value="120"/> </interaction-spec> </endpoint-interaction> <endpoint-interaction operation="display" portType="calcPortType"> <interaction-spec className="com.attunity.adapter.oracle.AttuInteractionSpec"> <property name="FunctionName" value="display"/> <property name="ExecutionTimeout" value="120"/> </interaction-spec> </endpoint-interaction> <endpoint-interaction operation="div" portType="calcPortType"> <interaction-spec className="com.attunity.adapter.oracle.AttuInteractionSpec"> <property name="FunctionName" value="div"/> <property name="ExecutionTimeout" value="120"/> </interaction-spec> </endpoint-interaction> <endpoint-interaction operation="mul" portType="calcPortType"> <interaction-spec className="com.attunity.adapter.oracle.AttuInteractionSpec"> <property name="FunctionName" value="mul"/> <property name="ExecutionTimeout" value="120"/> </interaction-spec> </endpoint-interaction> <endpoint-interaction operation="sub" portType="calcPortType"> <interaction-spec className="com.attunity.adapter.oracle.AttuInteractionSpec"> <property name="FunctionName" value="sub"/> <property name="ExecutionTimeout" value="120"/> </interaction-spec> </endpoint-interaction></adapter-config>
バインディング・ファイルの次のプロパティを構成する必要があります。
retryInterval
: リソース・アダプタが、サーバーでイベントが検出されない場合に次のリクエストを発行するまで待機する時間を指定します。デフォルトでは、15秒に設定されています。これはオプションです。
OracleASのOracleレガシー・アダプタは、OracleASクラスタのアクティブ-アクティブ・トポロジおよびアクティブ-パッシブ・トポロジを使用した高可用性をサポートします。アクティブ-アクティブ・トポロジでは、Oracle Application Serverによって、OracleASクラスタを使用したすべてのコンポーネントにアクティブ-アクティブ冗長モデルが提供されます。OracleASクラスタでは、2つ以上のOracle Application Serverインスタンスが、同じアプリケーション負荷を処理するように構成されます。これらのインスタンスは、1台のコンピュータに作成することも、別々のコンピュータに作成することもできます。アクティブ・インスタンスをフロントエンド処理するには、外部のロード・バランサによってリクエストを任意のアクティブ・インスタンスにリダイレクトするか、または他のアプリケーションレベルの構成(アドレス・リストなど)によってリクエストを分散させます。アクティブ-パッシブ・トポロジでは、Oracle Application Serverによって、OracleASコールド・フェイルオーバー・クラスタを使用したアクティブ-パッシブ・モデルがサポートされます。この場合、2つ以上のApplication Serverインスタンスが、1つのアプリケーション負荷を処理するように構成されますが、アクティブになるのは常に1つのインスタンスのみです。
CDCアダプタにおける高可用性のサポートでは、すべてのインスタンスが、バインディング・ファイル内のjdbcDatasourceパラメータで指定されているOracleデータベースにアクセス可能である必要があります。
CDCリソース・アダプタ作業スレッドで問題が発生した場合、そのスレッドは定義された時間(retryInterval
)だけ待機してから、最後の操作を再試行します。アダプタを停止する場合は、エンドポイントを非アクティブ化する必要があります。リソース・アダプタの動作は、ロールバック・ループのタイプに応じて異なります。いずれの場合でも、リソース・アダプタによって対応するエラー・メッセージがリソース・アダプタのログ・ファイルに書き込まれて、メッセージがメッセージ・リスナーonAlert
メソッドに送信されます。
Oracle Connectへの接続が切断された場合は、接続が再度確立されるまで、リソース・アダプタは常に定義された時間(retryInterval
)待機します。
その他すべての場合では、リソース・アダプタは即座に最後の操作を再試行します。その結果問題が発生した場合、リソース・アダプタは、最初はretryInterval
の時間だけ待機し、その後は試行ごとに待機時間を2倍にして徐々に長い時間待機します。ただし、1分を超えて待機することはありません。
2PCのprepare
操作の前にOracleASリソース・マネージャによってロールバックが起動される場合は、CDCリソース・アダプタによって、問題をトラブルシューティングするときに役立つ特別な操作が実行されます。この場合は、リソース・アダプタによって、最後のイベント配列から各イベントが個別にBPELエンドポイントに送信されます。エンドポイントでは、問題があった最後のイベントのストリーム位置がROLLBACK_STREAM_POSITION列に保存されます。
CDCリソース・アダプタ作業スレッドでロールバック・ループが発生したことに気付いた場合は、ROLLBACK_STREAM_POSITION
の値がNULLでないかどうかをチェックします。この値がNULLでない場合は、データに問題があったかどうかをチェックします。問題があるイベントは、現在のストリーム位置の値を使用して、ステージング領域から選択できます。このようにデータを分析して、問題を特定できます。さらに、問題があるイベントをスキップすることもできます。この場合は、エンドポイントを停止して、NEW_STREAM_POSITION
列をROLLBACK_STREAM_POSITION
の値で更新します。