IBM DB2 クエリー・パトローラー 管理の手引き

結果の宛先の管理

このセクションでは、結果宛先を管理するための情報と手順を提供します。

結果の宛先

通常は、DB2 クエリー・パトローラーは照会結果をデータベース表として保管します。 これらの表は、DQP_RES_TBLSPC プロファイル変数で定義されている表スペースに常駐します。 このプロファイル変数が表スペースを指定しない場合は、 結果表は DB2 によって決定された表スペースに入れられます。 DB2 クエリー・パトローラー・プロファイル変数の設定については、 DB2 プロファイル変数を参照してください。

DB2 クエリー・パトローラーの結果宛先表では、代替照会結果宛先の記述を指定できます。 代替宛先には、ファイルまたは名前付きパイプを使用できます。 結果がファイルまたはパイプに書き込まれる場合には、 結果はコンマで区切られた可変長形式で出力されます。

結果がファイルに書き込まれる場合、宛先記述でファイル名を指定します。 結果がパイプに書き込まれる場合、記述では、 結果のパイプ接続先の実行可能プログラムの名前をコマンド行パラメーターと共に指定します。

結果宛先変数

ファイルまたはパイプ接続された宛先については、以下の変数を記述に含めることができます。 実行時の値は、照会の実行の前にこれらの値を置換します。

$(JOB)
7 桁の番号が、この変数を置換します。

$(USER)
ジョブの所有者のユーザー ID がこの変数を置換します。

$(HOME)
ジョブの所有者のホーム・ディレクトリーのパス名が、この変数を置換します。 Windows では C:\ になります。

結果宛先記述で 3 つすべての変数を使用する場合、宛先はたとえば次のようになります。

   $(HOME)\$(USER)\job$(JOB)_results\result.txt

結果宛先変数が解決したら、結果宛先はたとえば次のようになります。

   C:\qpuser\job0000002_results\result.txt

他に指定できる変数は $(PIPE) 変数であり、 これはパイプ・プログラムで命名されたパイプを表します。 DB2 クエリー・パトローラー では、コマンドの STDIN にデータが書き込まれる代わりに、 名前付きパイプにデータが書き込まれるようにすることができます。

$(PIPE) 変数を結果宛先記述で使用する場合、 DB2 クエリー・パトローラー・サーバーが使用するパイプの名前がプログラム引き数として渡されます。 たとえば、結果宛先記述が次のようであるとします。

C:\pipes\testprogram.exe $(PIPE)

$(PIPE) 変数はパイプの名前に解決され、プログラムに渡されます。 結果セットを得るためには、 プログラムはこの引き数を使用して名前付きパイプへの接続をオープンしなければなりません。 サンプルのパイプ・プログラムは、 DB2 クエリー・パトローラー CD-ROM の db2/samples/c ディレクトリーに収録されています。

パイプ接続された結果の宛先

パイプ・プロセスは、シェル・スクリプトまたは他の任意の実行プログラムとすることができます。 DB2 クエリー・パトローラーは、ジョブ所有者のユーザー ID の下でこのプロセスを起動しますが、 環境変数はエージェントが開始されたときに設定されたままになります。 システム管理者が結果宛先記述で $(PIPE) 変数記号を指定しないかぎり、 プロセスは STDIN から結果を読み取ることができます。 $(PIPE) 変数記号を指定した場合には、 DB2 クエリー・パトローラー SQL 実行プログラムにより作成された名前付きパイプから結果が読み取られます。 すべての結果を読み取る前にプロセスが終了すると、このジョブは打ち切られます。 UNIX では、"remote" という名前のマシンで結果ファイルを作成するには、 以下の宛先記述を使用できます。

   rsh remote "cat > job$(JOB)_results"

Windows での STDIN へのパイプ

Windows 環境では、STDIN へのパイプは他のオペレーティング・システムとは異なった仕方で扱われます。 Windows のアプリケーション間でハンドルを渡す方法のため、追加の引き数が必要となります。 追加の引き数 -9 handleNumber が、パイプ・プログラムへの呼び出しに付加されます。 たとえば、パイプ結果宛先が C:\pipes\testprogram.exe $(HOME)\ $(USER) \$(JOB) である場合、 結果宛先変数が解決された後のパイプ・プログラムへの呼び出しは、次のようになります。

C:\pipes\testprogram.exe C:\qpuser\0000001 -9 handleNumber

追加の引き数 -9 handleNumber は、 親プロセスのパイプ書き込みハンドルです。 パイプ・プログラムは、 サーバー・プロセスが書き込みを終了したらパイプを破棄することを許可するために、 この渡されたハンドルをクローズしなければなりません。 ハンドルがクローズされない場合は、パイプ・プロセスは停止してデータを待ち、 サーバー・プロセスは停止してパイプ・プロセスが終了するのを待ちます。

ヒント

パイプ・プログラムの例は、 DB2 クエリー・パトローラー CD-ROM の db2/samples/c ディレクトリーに収録されています。 サンプルには次のものが含まれます。
  • pipe_stdin_NT.c
  • pipe_named_NT.c
  • pipes.c

結果の宛先のリスト表示

結果の宛先をリストするには、以下の手順に従います。

  1. QueryAdministrator のメイン・ウィンドウで、 「結果セットの管理 (Result Set Administration)」タブを選択します。
  2. 全結果セットのリスト (List All Result Sets)」をクリックして、 結果の宛先をすべてリストします。 個々の結果の宛先が表形式で「結果セットの管理 (Result Set Administration)」ページにリストされます。

結果の宛先の作成

結果の宛先を作成するには、以下の手順に従います。

  1. QueryAdministrator のメイン・ウィンドウで、 「結果セットの管理 (Result Set Administration)」タブを選択します。
  2. 新規 (New)」をクリックします。 結果の宛先に関するウィンドウが空の状態でオープンします。


    「結果の管理 (Result Administration)」ウィンドウ

  3. 以下の表にリストされている個々のフィールドに値を入力します。
  4. 値をすべて入力し終えたら、「OK」をクリックします。

次のリストでは、個々のノード・パラメーターの情報を提供します。

宛先名 (Destination Name)
結果の宛先の名前を示します。 ユーザーが新しい照会をスケジューリングすると、 QueryEnabler は「結果の宛先 (Result Destinations)」フィールドにこれらの名前を表示します。

宛先タイプ (Destination Type)
宛先のタイプを示します。

形式 (Format)
サポートされている形式は ASCII だけに限られます。

説明 (Description)
ファイルの場合、説明欄にはファイルの名前が示されます。 パイプの場合、実行可能プログラムのコマンド行が示されます。 どちらのタイプの説明でも、以下のいずれかの置換変数が含まれることがあります。

他に指定できる変数は $(PIPE) 変数であり、 これはパイプ・プログラム・コードで命名されたパイプを表します。 DB2 クエリー・パトローラーでは、コマンドの STDIN にデータが書き込まれる代わりに、 名前付きパイプにデータが書き込まれるようにすることができます。

$(PIPE) を結果宛先記述で使用する場合、 DB2 クエリー・パトローラー・サーバーが使用するパイプの名前がプログラム引き数として渡されます。 たとえば、結果宛先記述が次のようであるとします。

C:\pipes\testprogram.exe $(PIPE)

$(PIPE) 変数はパイプの名前に解決され、プログラムに渡されます。 結果セットを得るためには、 プログラムはこの引き数を使用して名前付きパイプへの接続をオープンしなければなりません。 サンプルのパイプ・プログラムは、 DB2 クエリー・パトローラー CD-ROM の db2/samples/c ディレクトリーに収録されています。

結果の宛先の編集

結果の宛先を編集するには、以下の手順に従います。

  1. 「結果セットの管理 (Result Set Administration)」ページで、結果の宛先を選択します。
  2. 表示 / 編集 (View/Edit)」をクリックします。 「結果宛先の詳細情報 (Detailed Information for Result Destination)」ウィンドウがオープンします。
  3. 宛先のタイプ、説明、またはその両方を編集します。
  4. OK」をクリックします。

注:宛先の名前を変更することはできません。 変更できるのは宛先のタイプと説明だけです。

結果の宛先の除去

結果の宛先を除去するには、以下の手順に従います。

  1. 「結果セットの管理 (Result Set Administration)」ページで、 除去したい結果の宛先を選択します。
  2. 除去 (Remove)」をクリックします。
  3. はい (Yes)」をクリックして、 選択した結果の宛先を除去したいことを確認します。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]