Oracle Application Server CDC Adapters for IMS/DBユーザーズ・ガイド 10g リリース3(10.1.3.4) B53284-01 |
|
戻る |
次へ |
OracleAS CDC Adapter for IMS/DBには、数多くの構成プロパティがあります。 「OracleAS CDC Adapter for IMS/DBでのチェンジ・データ・キャプチャの設定」の手順を実行した後、Oracle Studioでプロパティを編集できます。この章では、構成プロパティおよびそれらの編集方法について説明します。この章の内容は、次のとおりです。
OracleAS CDCソリューションを作成した後、プロパティを編集することもできます。ソリューションによって、アダプタおよびCDC Queueアダプタという2つのアダプタが作成されます。アダプタはサーバー・マシン上に作成され、CDC Queueアダプタはステージング領域マシン上に作成されます。詳細は、「Oracle Studioでのチェンジ・データ・キャプチャの設定」を参照してください。
CDCアダプタ・プロパティを編集するには、サーバー・マシンでOracle Studioの「Design」パースペクティブを開き、CDCソリューションのバインディングを見つけます。次に、アダプタを開きます。アダプタには、CDCソリューションの名前に、_ag
という接尾辞が付いた名前が付けられています。アダプタ・プロパティに加えた変更は、CDCソリューションを再デプロイするとリセットされるため、これらの変更をソリューションのデプロイメント後に再度適用する必要があります。ソリューションのデプロイの詳細は、「チェンジ・データ・キャプチャのデプロイ」を参照してください。
CDCアダプタのプロパティを編集するには、次の手順を実行します。
「スタート」メニューから、「プログラム」→「Oracle」→「Studio」を選択します。
「Machines」フォルダを開きます。
「Oracle Studioでのチェンジ・データ・キャプチャの設定」で作成したサーバー・マシンを開きます。
「Bindings」フォルダを開き、CDCソリューションの名前に_ag
という接尾辞が付いたバインディングを開きます。
「Adapter」フォルダを開きます。
ソリューションの名前および_ag
という接尾辞を持つアダプタを右クリックし、「Open」を選択します。
エディタ内にアダプタ構成エディタが開き、アダプタのプロパティが表示されます。
必要に応じて、アダプタのパラメータを編集します。
プロパティの詳細は、「OracleAS CDCアダプタの構成プロパティ」を参照してください。
この項では、IMS/DB CDCアダプタの構成プロパティについて説明します。プロパティは、Oracle Studioを使用して編集できます。 IMS/DB CDCには、次のタイプのプロパティがあります。
Logger Name
: データ・キャプチャに使用されるMVSログ・ストリームの名前。
CDC$PARM
は、DFSFLGX0ユーザー・イグジットのパラメータを含むQSAMデータセットまたはPDSメンバーを定義するDDカードの名前です。 その作成方法および構文については、「CDC$PARMデータセットの作成および構成」を参照してください。次に、CDC$PARMのプロパティの説明を示します。
BUFFER_NUM
: ログ・ストリームのバッファ番号。有効な値はDefault
から30
です。
BUFFER_SIZE
: ログ・ストリームのバッファ・サイズ。有効な値はDefault
から22550
バイトです。
DEBUG
: ON
の場合、デバッグ情報はWTOを使用して出力されます。デフォルト値はOFF
です。
LOGSTREAM
: ログ・ストリーム名。 デフォルト値はORACLE.IMS.DCAPDATA
です。
この項では、Oracle CDCアダプタの共通構成プロパティおよびステージング領域マシン上にある変更ルーターの構成プロパティについて説明します。
CDCアダプタ・プロパティを編集するには、Oracle Studioの「Design」パースペクティブを開き、作成したCDCソリューションのバインディングを見つけます。バインディングには、CDCソリューションの名前に_ag
という接尾辞が付いた名前が付けられています。ソリューションの名前および_ag
という接尾辞を持つアダプタを開き、プロパティを編集します。Oracle Studioでアダプタのプロパティを編集する方法については、「Oracle Studioでのプロパティの編集」を参照してください。アダプタ・プロパティに加えた変更は、CDCソリューションを再デプロイするとリセットされるため、これらの変更をソリューションのデプロイメント後に再度適用する必要があります。
構成プロパティの詳細は、次の項で説明しています。
次に説明するアダプタ・プロパティは、CHECKPOINT
をIMS/TMインスタンスに送信する場合に構成されます。 チェックポイントが構成されていないと、IMS/TM制御リージョンによって少量の更新が実行される場合に、変更はDFSFLGX0
イグジットによって遅延して取得されることがあります。 これらのプロパティを編集する方法については、「OracleAS CDCアダプタのプロパティの編集」を参照してください。
すべてのOracle CDCアダプタに共通のその他のプロパティもあります。 Oracle CDCアダプタの共通プロパティの詳細は、「CDCアダプタの共通プロパティ」を参照してください。
envImsBatch
: CHECKPOINT
コマンドを実行するには、falseに設定します。デフォルト値はtrue
です。
checkPointFrequency
: チェックポイントを発行する頻度。 デフォルト値は60
(秒)です。 サポートされている最小頻度は10秒です。
consoleCheckPoint
: 拡張MCSコンソールを使用するには、true
に設定します。 false
の場合は、WTORへの応答が使用されます。デフォルト値はtrue
です。
imsJobName
: メッセージDFS996I
へのWTOR応答が送信されるIMS/TMのIMSジョブ名。 これはZ/OSコンピュータ上で複数のIMS/TMインスタンスを実行する場合に入力する必要があります。
consoleCheckPointCommand
: MCSコンソールに送信する必要があるコマンド。 デフォルト値は"/CHE"
です。
returnLastContextOnIdle
: true
の場合、関連する更新が発生しなかった場合は、正確なマシン・タイムスタンプが最後のコンテキストとして設定されます。
CDC Queueアダプタは、ステージング領域で見つかるデータベース・アダプタです。「Oracle Studioでのチェンジ・データ・キャプチャの設定」を実行しているときに自動的に作成されます。Oracle Studioのアダプタのエディタで表示できる次の3つのプロパティがあります。
connectString
defaultDatasource
multipleResults
CDCソリューションでキュー・アダプタが適切に機能するようにするには、これらのプロパティの値を変更しないでください。
CDC Queueアダプタに、アダプタのXMLスキーマで表示できるその他のプロパティがある場合があります。XMLの表示方法の詳細は、「アダプタ・メタデータのXML」を参照してください。
XMLで表示される次のプロパティのみが編集可能です。
maxRecords
: 返されるレコードの最大数。
Oracle StudioでXMLレコードを編集する方法については、「Oracle StudioでのXMLファイルの編集」を参照してください。
次の表に、Oracle CDCアダプタの共通構成プロパティを示します。 OracleAS CDC Adapter for IMS/DB固有のCDCアダプタ・プロパティの詳細は、「OracleAS CDC Adapter for IMS/DBのプロパティ」を参照してください。
表C-1 CDCアダプタの構成プロパティ
パラメータ | 型 | デフォルト | 説明 |
---|---|---|---|
|
string |
OracleAS CDCアダプタのデータソースの名前。 |
|
|
アダプタに接続し、処理のためにアダプタから変更イベントを取得できるユーザーのリスト。ルーターが指定されていない場合、ワークスペースの有効なユーザーがOracle Connectアダプタから変更イベントを取得できます。 Oracle Studioでユーザーのリストを追加するには、「 |
||
|
int |
2 |
データベース・ジャーナルのポーリング間隔。データベース・ジャーナルでイベントが受信されていない場合、アダプタはこのプロパティで指定された時間(秒単位)待機します。 |
|
boolean |
|
|
|
boolean |
|
|
|
boolean |
|
変更ルーターにより、アダプタからN個のイベントが要求されます。アダプタによってデータベース・ジャーナルで検出されるイベントがN個よりも少なく、 |
|
ロギング・レベル。使用可能なログ・レベルは、次のとおりです。
|
||
|
int |
|
CDCアダプタによって |
次の表に、SQLベースの変更イベント・ルーターの構成パラメータを示します。
ルーター・プロパティを編集するには、Oracle Studioの「Design」パースペクティブを開き、作成したCDCソリューションのバインディングを見つけます。バインディングには、CDCソリューションの名前に_router
という接尾辞が付いた名前が付けられています。ソリューションの名前および_router
という接尾辞を持つアダプタを開き、プロパティを編集します。Oracle Studioでアダプタのプロパティを編集する方法については、「Oracle Studioでのプロパティの編集」を参照してください。
表C-2 変更ルーターの構成パラメータ
パラメータ | 型 | デフォルト | 説明 |
---|---|---|---|
|
string |
OracleAS変更データソース。 |
|
|
Boolean |
false |
|
|
int |
48 |
ステージング領域内の変更表に変更レコードを保持する時間を指定します。指定した時間が経過すると、変更レコードは削除されます。
値 |
|
enum |
ルーターのロギング・レベル。使用可能なログ・レベルは、次のとおりです。
|
|
|
int |
|
単一のパスで削除される期限切れの変更レコード数を制御します。大量の変更イベントが継続的に受信されている場合に、待機時間を短縮するために、この数を減らす必要があることがまれにあります。 |
|
int |
|
ルーターによって開かれる物理ファイルの数を制御します。 |
|
int(Kb単位) |
|
ディスクにオフロードされる前にトランザクションごとにメモリーに格納できるメモリー量を指定します。メモリーよりも遅いディスクが頻繁に使用されすぎないように、この数は平均トランザクション・サイズよりも大きくする必要があります。 |
|
int(Kb単位) |
|
アクティブなトランザクション(まだコミットもロールバックもされていないトランザクション)を格納するために使用できる合計メモリー量を指定します。 |
|
構造: string string string int int int boolean |
|
OracleAS CDCアダプタへの接続情報。 |
|
string |
ステージング領域変更ファイルが格納されるディレクトリを指定します。このディレクトリには、オフロードされたトランザクションやタイムアウトとなったトランザクションおよびエラー・ファイルも格納されます。 |
|
|
int(秒単位) |
|
新しいイベントを取得せずにトランザクションがアクティブであり続ける時間を指定します。このパラメータは、取得されるデータベースの対応する設定に応じて設定する必要があります。特に、トランザクションが失われる可能性があるため、この設定をデータベースのトランザクション・タイムアウト設定よりも小さくしないでください。 |
|
enum |
sqlBbased Cdc |
このパラメータは、この値に設定する必要があります。 |
|
変更イベント・ルーターに接続し、処理のために変更イベントを取得できるユーザーのリスト。ルーターが指定されていない場合、ワークスペースの有効なOracle Connectユーザーがアダプタから変更イベントを取得できます。 Oracle Studioでユーザーのリストを追加するには、「 |
||
|
変更イベント・ルーターに接続し、処理のために変更イベントを送信できるユーザーのリスト。ルーターが指定されていない場合、ワークスペースの有効なOracle Connectユーザーがアダプタから変更イベントを取得できます。 Oracle Studioでユーザーのリストを追加するには、「 |
||
|
Boolean |
False |
|
|
string |
マルチルーター・モードを使用するときのノードのID。各ノードは、ルーターを表します。 |
|
|
string |
.. |
これは、所有者の名前と接尾辞表を区切るために使用されるセパレータの値です。Oracle Studioでは、ステージング領域のデフォルトのセパレータはアンダースコア(_)です。たとえば、owner.tableです。SSISを使用してCDCソリューションを構成する場合、アンダースコアはエラーになります。Oracle Studioの「Preferences」ウィンドウでデフォルトのセパレータを変更する場合、新しい値はこのプロパティに入力されます。 |
関連する表には、参照整合性(RI)制約が適用されているものがあります。たとえば、OrderHeader
とOrderLines
では、OrderHeader
に関連付けられていないOrderLines
は許可されません。
トランザクションではなく表で変更イベントを処理する場合(これがOracleAS CDCの動作方法です)、参照整合性を適切に保持できません。たとえば、最初にすべてのOrderHeader
レコードを処理し、次にすべてのOrderLines
レコードを処理する場合、削除されるOrderHeader
は、関連付けられたOrderLines
レコードの削除(必須)よりもかなり前に適用される可能性があります。
参照整合性が回復されるまでに必要な既知の時間枠まで、参照整合性の可能性を削減するには、(変更表の読取りとは)異なるプロセスが必要です。
複数の関連する表で使用する共通同期点を保持するために、特別なSYNC_POINTS表を追加する必要があります。この表は、次のように定義されています。
表C-3 SYNC_POINTS表の構造
列名 | データ型 | 説明 |
---|---|---|
application_name |
string (64) |
処理が実行される対象アプリケーション |
table_name |
string (64) |
同期点の名前 |
context |
String (32) |
すべての関連する表のイベント取得の上限として安全に使用できるストリーム位置 |
この表の一意の主キーは、application_name + sync_name
という連結です。この表の使用は必須ではありませんが、SQLベースのCDCにおける推奨使用パターンの一部です。
SYNC_POINTS表は、次の定義を使用して作成します(filenameは実際のパスに変更します)。
<?xml version='1.0' encoding='UTF-8'?><navobj> <table name='SYNC_POINTS' fileName='<staging-directory-path>SYNC_POINTS' organization='index'> <fields> <field name='application_name' datatype='string' size='64'/> <field name='sync_name' datatype='string' size='64'/> <field name='context' datatype='string' size='32'/> </fields> <keys> <key name='Key0' size='128' unique='true'> <segments> <segment name='application_name'/> <segment name='sync_name'/> </segments> </key> </keys> </table></navobj>
次の手順では、複数のETL過程の最後にRIが回復されるようにする方法について説明します。これは、変更レコードを使用するための前述の手順を拡張したものです。ここでは、表T1、T2およびT3がRI制約で関連しており、Aが作業対象のアプリケーションであることを想定しています。
ストリーム位置を作成するには
これは、STREAM_POSITIONS表でT [1/2/3] + Aについてストリーム位置レコードを作成するための、1回だけの設定手順です。次のSQL文によって、そのレコードが作成されます。
insert into STREAM_POSITIONS values ('A', 'T1', '');insert into STREAM_POSITIONS values ('A', 'T2', '');insert into STREAM_POSITIONS values ('A', 'T3', '');
この手順は、複数のETL過程の処理の最初に(つまり、T1、T2およびT3の変更イベントの処理を開始する前に)実行されます。ここでの目的は、T1、T2およびT3の取得について共有される同期点を得ることです。これは、SERVICE_CONTEXT表のcontext列をサンプリングすることによって実行されます。この値は、最新のコミットされたトランザクションにおける最後の変更レコードのストリーム位置です。これは、次のように実行されます。
insert into SYNC_POINTS select 'A' application_name, 'T123' sync_name, context from SERVICE_CONTEXT;
ここで、T123は、表T1、T2およびT3の同期点について選択した名前です。
この手順では、変更データが実際に読み取られます。各ETL過程で発生します。
select n.* from T t, STREAM_POSITIONS sp, SYNC_POINTS sy where sp.application_name = 'A' and sp.table_name = 'T' and sy.application_name = sp.application_name and sy.sync_name = 'T123' and n.context > sp.context and n.context <= sy.context order by n.context;
n.context <= sy.context
が使用されていることにも注意してください。これは、contextは処理対象の変更レコードを表し、処理にはsy.context
に関連付けられた変更レコードが含まれている必要があるためです。
このクエリーによって、最後に処理された変更レコードの直後から開始し、共通同期点で停止して、変更レコードが取得されます。n.*
を列の明示的なリストで置き換えることができますが、context列を選択する必要がある点が重要です。この列は、次の手順で必要となる変更レコードのストリーム位置であるためです。
この手順は、表Tiについてすべての変更レコードが取得されて処理されると、各ETL過程の最後で発生します。最後の変更レコードのcontext列の値がCであったと想定します。この値は、次のETL過程のために、STREAM_POSITION表に戻す必要があります。これは、次のように実行されます。
update STREAM_POSITIONS set context='C' where application_name 'A' and table_name = 'Ti';
この値は、必要に応じて、ETLプロセスの中でより頻繁に格納できます。一般的なガイドラインでは、変更レコード・データがターゲット・データベースにコミットされたときに、ストリーム位置も更新する必要があります。
取得された変更は、変更表に保持されます。この表には、元の表の列およびCDCヘッダー列があります。次の表に、ヘッダー列の説明を示します。
表C-4 ヘッダー列
列名 | 説明 |
---|---|
context |
ステージング領域内の変更レコードのストリーム位置。この列は、一意の1次索引として定義されています。次の構造を持つ32バイトの文字列です。 <yyyymmdd>T<hhmmss>.<nnnn><cccccc> ここで示された文字列については、次のとおりです。
|
operation |
この列には、CDCアダプタで可能な操作が表示されます。可能な操作は、次のとおりです。
|
transactionID |
操作のトランザクションID。 |
tableName |
変更された表の名前。 INSERT、UPDATEおよびBEFOREIMAGE操作の場合、所有者名および表名が表示されます。 COMMITおよびROLLBACK操作の場合、この値は |
timestamp |
発生日時。 |
OracleAS CDC Adapter for IMS/DBでは、IMS/DBトランザクション境界内のトランザクションがサポートされています。 ただし、ロールバックの場合に、ログ内に使用できる補正レコードはありません。
IMS/DB CDCアダプタは、認可レベルREAD
でMVSログ・ストリームに接続します。DFSFLGX0
ユーザー・イグジットは、認可レベルWRITE
でログ・ストリームに接続します。正しいセキュリティ認可を判別するには、IBMのマニュアル『MVS Auth Assm Services Reference ENF-IXG』を参照してください。
注意:
|