説明
CUSEREXIT
パラメータを使用して、Oracle GoldenGate処理内の定義済イグジット・ポイントで、Windows DLLまたはUNIX共有オブジェクトから、Cプログラミング・コードで記述されたカスタム・イグジット・ルーチンをコールします。ユーザー・イグジット・ルーチンは、ExtractおよびReplicatプロセスから様々なイベントおよび情報を受け入れ、リクエストどおりに情報を処理し、コール元(このルーチンをコールしたOracle GoldenGateプロセス)にレスポンスと情報を返す必要があります。
ユーザー・イグジットは、Oracle GoldenGateソリューション内で使用可能なデータ変換ファンクションのかわりとしても、こうしたファンクションと一緒にも使用できます。
注意: 調整Replicatを使用してユーザー・イグジット・ルーチンをコールする場合、スレッドセーフの方法でユーザー・イグジットを記述する必要があります。 |
ユーザー・イグジットの作成および実装の詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。
構文
CUSEREXIT {DLL
|shared_object
}routine
[, PASSTHRU] [, INCLUDEUPDATEBEFORES] [, PARAMS 'string']
DLL
| shared_object
}ユーザー・イグジット・ファンクションを含むWindows DLLまたはUNIX共有オブジェクトの名前。
routine
実行するイグジット・ルーチン名。
PASSTHRU
Extractデータ・ポンプにのみ有効です。データベースが不要で、出力トレイルが許可されていないとみなされます。ユーザー・イグジットがすべての処理を実行し、Extractがレコードをスキップするとみなされます。Extractは、ユーザー・イグジットにレコードを渡す前にすべての必要なデータ・マッピングを行います。
レスポンスのステータスは、EXIT_OK_VAL
ではなくEXIT_PROCESSED_REC_VAL
になります。すべての処理統計は、レコードがOracle GoldenGateによって処理されたように更新されます。
INCLUDEUPDATEBEFORES
列値のビフォア・イメージをユーザー・イグジットに渡します。このパラメータを使用するときは、requesting_before_after_ind
フラグをサポートするコールバック・ファンクション内でこのフラグをBEFORE_IMAGE_VAL
に設定し、ビフォア・イメージを明示的にリクエストする必要があります。この設定を行わないと、アフター・イメージのみがユーザー・イグジットに渡されます。デフォルトでは、Oracle GoldenGateはアフター・イメージのみを使用します。
データ・ポンプまたはReplicatからコールされるユーザー・イグジットに対してINCLUDEUPDATEBEFORES
を使用する場合は、常にプライマリExtractプロセスでGETUPDATEBEFORES
パラメータを使用することにより、ビフォア・イメージを取得してトレイルに書き込み、ユーザー・イグジットでprocess_record
イベントを発生させます。プライマリExtractにもユーザー・イグジットが含まれている場合は、GETUPDATEBEFORES
によってビフォアおよびアフター・イメージ両方が別々のEXIT_CALL_PROCESS_RECORD
イベントとしてユーザー・イグジットに送信されます。
ユーザー・イグジットが(トランザクション・ログを読み込む)プライマリExtractからコールされる場合、このExtractに必要なのはINCLUDEUPDATEBEFORES
のみです。このケースでは、他のダウンストリームのOracle GoldenGateプロセスがトレイルへのビフォア・イメージ書込みを必要としないかぎり、GETUPDATEBEFORES
は必要ありません。INCLUDEUPDATEBEFORES
を指定しても、ビフォア・イメージはトレイルに書き込まれません。
PARAMS
'string'
指定した文字列を起動時に渡します。プロパティ・ファイル、起動パラメータ、その他の文字列を渡すために使用できます。文字列は一重引用符で囲みます。
この文字列のデータは、EXIT_CALL_START
exit_params_def.function_param
のユーザー・イグジットに渡されます。PARAMS
で、引用符で囲まれた文字列が指定されない場合、exit_params_def.function_param
はNULL
です。
例
CUSEREXIT userexit.dll MyUserExit
CUSEREXIT userexit.dll MyUserExit, PARAMS 'init.properties'
CUSEREXIT userexit.dll MyUserExit, INCLUDEUPDATEBEFORES, PARAMS 'init.properties'
CUSEREXIT userexit.dll MyUserExit, INCLUDEUPDATEBEFORES, PASSTHRU, & PARAMS 'init.properties'
CUSEREXIT cuserexit.dll MyUserExit, & PASSTHRU, & INCLUDEUPDATEBEFORES, PARAMS 'Some text to start with during startup'