DB2 クエリー・パトローラーは、 照会のためのコスト分析を実行する直前にカスタマー作成の出口プログラムを起動できます。 出口プログラムは SQL ステートメントを調べ、 DB2 クエリー・パトローラーがステートメントを実行できないようにすることができます。 ユーザーがコスト分析をう回しないかぎり、DB2 クエリー・パトローラーは、SELECT、INSERT、 UPDATE、または DELETE ステートメントを含むすべてのジョブについて、 出口プログラムを起動します。
![]() | システム管理者が、ユーザーのプロファイルで「コスト分析 (Cost Analysis)」パラメーターを Don't Do Cost Analysis (コスト分析を行わない) に設定した場合にのみ、 ユーザーはコスト分析をう回できます。 詳細については、ユーザー・プロファイルの作成を参照してください。 |
サーバー・プロセスを開始する前に、
DQP_EXIT_AN を実行可能プログラムのパス名に設定した場合、
DB2 クエリー・パトローラーは出口分析プログラムを起動します。
出口プログラムは、シェル・スクリプトまたは他の任意の実行プログラムとすることができます。
DB2 クエリー・パトローラーは、iwm ユーザー ID のもとで出口プログラムを呼び出します。
SQL ステートメントは、STDIN を介して渡されます。
UNIX では、DB2 クエリー・パトローラーは、
ジョブの所有者のユーザー ID を唯一の引き数として出口ルーチンに渡します。
Windows では、追加の引き数 (-9 handleNumber) が渡され、
SQL ステートメントが STDIN から読み取られる前に、
出口プログラムは渡されたハンドルをクローズしなければなりません。
終了コードがゼロで、STDOUT への書き込みがない状態で出口ルーチンが終了する場合、
DB2 クエリー・パトローラーは、ジョブの処理を通常通りに継続します。
出口ルーチンが非ゼロ出口コードで終了したり、
STDOUT になにかを書き込んだりする場合には、ジョブは打ち切られます。
ジョブ打ち切りメッセージには、STDOUT に書き込まれるメッセージが含まれます。
![]() | 出口分析プログラム userexit_NT.cの例が、 DB2 クエリー・パトローラー CD-ROM の db2/samples/c ディレクトリーに収録されています。 |