説明
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実行するイグジット・ルーチン名。
PASSTHRUExtractデータ・ポンプにのみ有効です。データベースが不要で、出力トレイルが許可されていないとみなされます。ユーザー・イグジットがすべての処理を実行し、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'