DB2 LUW でのストアド プロシージャのコンパイル

DB2 LUW を使用して COBOL ストアド プロシージャをコンパイルおよびリンクするには、次の手順を実行します。

  1. ストアド プロシージャとして使用するプログラムを Enterprise Developer プロジェクトに追加します。
  2. プロジェクトのプロパティを次のように設定します。
    • プログラムに $SET DB2(DB) 文が含まれていない場合は、[SQL] タブの [ESQL プリプロセッサ] フィールドで [HCO for DB2 LUW] オプションを選択して、この指令を設定します。
    • 64 ビットの DB2 LUW がインストールされているものの、32 ビット アプリケーションをビルドする場合は、プロジェクトのプロパティを更新して、DB2 のインストールに含まれている 32 ビット版の db2api.lib ファイルの完全修飾パスおよびファイル名を指定する必要があります。これを行うには、プロジェクトのプロパティを開いて、[COBOL リンク] タブの [Link with libs] フィールドに情報を入力します
  3. プロジェクトをビルドします。
  4. コマンド プロンプトまたはエクスプローラーを使用して、生成された .dll ファイルを、その出力場所 (デフォルトは projectpath\bin\x86\Debug) から DB2 インストール ディレクトリの SQLLIB\FUNCTION サブディレクトリにコピーします。
注: プログラムにストアド プロシージャの CALL 文が含まれている場合は、CALL_RESOLUTION DB2 指令を指定して、SQL0204 エラーを回避する必要があります。
重要: デフォルトで、ストアド プロシージャを呼び出した後、DB2 LUW は停止するまでストアド プロシージャをアンロードしません。本番環境になければ、ファイルのコピーに関する問題を避けるために次のいずれかの手順を使用できます。
  • DB2 管理者権限を持つコマンド プロンプトから、次の手順を実行します。
    1. db2stop を実行します。
    2. ストアド プロシージャのバイナリ ファイルをコピーします。
    3. db2start を実行します。
  • DB2 LUW 環境用に構成されたコマンド プロンプトから、次のコマンドを実行します。

    db2 update dbm cfg using KEEPFENCED NO

    警告: 本番環境では db2 update コマンドを実行しないでください。実行すると、パフォーマンスが大幅に低下します。このコマンドの詳細については、IBM のマニュアルを参照してください。