ワークベンチを使用して pureQuery 以外の API アプリケーション内の SQL ステートメントの静的実行を構成する

ワークベンチは、pureQuery 以外の API アプリケーションでの SQL ステートメントのキャプチャーおよびバインドを行う機能と、アプリケーションの実行時にそれらのステートメントを静的に実行する機能を備えています。

始める前に

システムがハードウェア要件およびソフトウェア要件を満たした状態にしてください。 InfoSphere® Optim™ pureQuery Runtime のシステム要件を参照してください。

アプリケーションが、ワークベンチの Java プロジェクト内にある必要があります。

バインド操作の実行前に、以下の前提条件を満たしていることを確認してください。
  • pureQuery StaticBinder ユーティリティーを呼び出すユーザーの特権設定に、以下の特権のいずれかが含まれること。
    • SYSADM 権限
    • DBADM 権限
    • パッケージが存在しない場合には、BINDADD 特権に加え、以下のいずれかの特権。
      • CREATEIN 特権
      • DB2® for z/OS®: 対象となるコレクションまたはすべてのコレクションに対する PACKADM 権限
      • DB2 Database for Linux, UNIX, and Windows: パッケージのスキーマ名が存在しない場合には、データベースに対する IMPLICIT_SCHEMA 権限
    • DB2 for z/OS: パッケージが存在する場合、パッケージに対する BIND 特権。
    • DB2 Database for Linux, UNIX, and Windows: パッケージが存在する場合には次が必要です。
      • スキーマに対する ALTERIN 特権
      • パッケージに対する BIND 特権
  • DB2 for Linux, UNIX, and Windows: アプリケーションでの静的 SQL ステートメントのコンパイルに必要な特権すべても、ユーザーに付与される必要があります。グループに付与される特権は、静的ステートメントの許可検査では使用されません。 ユーザーに SYSADM 権限があるものの、バインドを完了するための明示特権がない場合、DB2 データベース・マネージャーは明示的な DBADM 権限を自動的に付与します。
pureQuery 以外の API アプリケーションでの静的実行に pureQuery Runtime を使用している場合、 データベース内に作成された SQL 管理リポジトリーを以下のアクティビティーに使用できます。
  • pureQuery クライアント最適化によってキャプチャーされた SQL ステートメントおよび関連情報の保管。
  • pureQuery ランタイム構成情報および pureQueryXML ファイル情報の保管および管理。
  • pureQuery クライアント最適化対応のアプリケーションで使用する pureQuery 情報の取得。

手順

pureQuery 以外の API アプリケーション内の SQL ステートメントの静的実行を構成する場合、以下の基本的な手順があります。

  1. アプリケーション内の SQL ステートメントのキャプチャーおよびバインドを実行するために pureQuery を有効にします。
  2. オプション: キャプチャーするすべての SQL ステートメントを実行する、pureQuery 以外の API アプリケーションのための JUnit テストを作成します。 単体テストを作成しない場合、最終的に静的実行の対象となる SQL ステートメントすべてを実行するために、そのアプリケーションの実行が必要となります。

    ワークベンチでの JUnit については、JUnit テストの記述および実行を参照してください。

  3. 静的に実行する SQL ステートメントをキャプチャーします。
    1. pureQuery で SQL ステートメントをキャプチャーする方法を決定するプロパティーの値を設定します。
    2. アプリケーションまたは JUnit テストを実行します。
    完了すると、ワークベンチは指定した pureQueryXML ファイルを Java プロジェクト内に作成します。アプリケーション内の SQL ステートメントのすべてをキャプチャーせず、後に残りのステートメントをキャプチャーする必要がある場合は、上記の手順を繰り返すことができます。
  4. SQL ステートメントから作成する DB2 パッケージを構成します。
    1. Default.genProps ファイルで、編集する DB2 パッケージのコレクション、ルート名、およびバージョンを指定します。
      ファイルを保存した後で「SQL Outline」ビューを最新表示します。このビューには、値が指定されている場合は、DB2 パッケージの外観が表示されます。 このビューについては詳しくは、『「SQL Outline」ビュー』を参照してください。
    2. オプション: pureQueryXML ファイルを編集またはマージします。
      このファイルには、SQL ステートメント・セットが含まれます。 ステートメントから作成する DB2 パッケージは、このセットに基づいています。 ステートメント・セット名の変更、ステートメント間の移動、代替ステートメントの追加、およびステートメントの削除を行うことができます。 複数の pureQueryXML ファイルを一緒にマージすることもできます。
  5. DB2 パッケージを作成します。
    1. StaticBinder ユーティリティーが取り込まれた SQL ステートメントを DB2 パッケージにバインドする方法を判別するオプションを指定することで、 Default.bindProps ファイルを編集します。
    2. 以下のいずれかのステップにしたがって、取り込んだ SQL ステートメントをパッケージにバインドします。
      • フォルダー dataAccessFolder に含まれる個々の pureQueryXML ファイルを右クリックして、 「バインド」を選択します。
      • プロジェクト・フォルダーを右クリックして、「データ・アクセス開発 (Data Access Development)」>「アプリケーションのバインド (Bind Application)」を選択します。 この方法により、該当するすべての pureQueryXML ファイルにある SQL を一度にバインドできます。
      「接続の選択」ウィンドウが開くので、使用する DB2 データベースを選択します。Java プロジェクトに関連付けられていないデータベースを選択することができます。
      重要: オフラインでの作業中はバインド操作を実行できません。バインド先にする DB2 データベースに接続している必要があります。

      このステップの後に pureQueryXML ファイルの SQL ステートメントをさらに取り込んだ場合には、そのファイルに対してバインド操作を再実行する必要があります。

    3. DB2 パッケージおよびそれらに含まれる SQL ステートメントを表示します。
      プロジェクト・フォルダーを選択し、「SQL アウトライン」ビューの「SQL」ページを表示します。 ここで、必要な DB2 パッケージが作成済みであることを確認します。
      パッケージのプロパティーを変更するには、以下を実行します。
      1. Default.genProps ファイルを編集します。既存パッケージの新規バージョンを作成している場合、-pkgVersion オプションを使用してください。
      2. Default.bindProps ファイルを編集します。
      3. バインド操作を繰り返します。 -pkgVersion オプションを使用しない限り、既存の DB2 パッケージは上書きされます。

      Java ソースまたはアプリケーション内の SQL ステートメントをさらに編集することも可能です。編集後、pureQueryXML ファイルを削除し、SQL ステートメントを再びキャプチャーしてください。次に、作成する DB2 パッケージを構成し、バインド操作を再実行します。

      重要: 接続オブジェクト内の URL の client optimization、または Properties オブジェクト内のクライアント最適化のプロパティーのみを変更する場合は、pureQueryXML ファイルを削除する必要はありません。 ただし、プロパティーの変更時にアプリケーション内の行数を変更しないように注意してください。
  6. アプリケーションを実行します。

次のタスク

「SQL Outline」ビューの使用は、SQL ステートメントで生じる可能性のある問題のトラブルシューティングに役立ちます。留意すべき点は、SQL ステートメントやアプリケーションの他のエレメントに何らかの変更を加えた場合、SQL を再びキャプチャーし、DB2 パッケージを再作成しなければならないことです。

アプリケーションを JAR ファイルに展開する場合: JAR ファイルにアプリケーションを展開する前に、バインドする SQL ステートメントを含む すべての pureQueryXML ファイルの項目が Default.bindProps ファイルに含まれていることを確認してください。 pureQuery StaticBinder ユーティリティーは、アプリケーションを展開するデータベースのコマンド行から実行する必要があり、 Default.bindProps ファイルにリストされている pureQueryXML ファイルに対してのみ動作します。

ファイルを追加するには、以下のようにします。
  1. プロジェクト内のフォルダー dataAccessFolder に入っている Default.bindProps ファイルを右クリックして、 「データ・アクセス開発 (Data Access Development)」>「項目の追加または除去」を選択します。
  2. 「項目の追加または除去」ウィンドウで、 必要な pureQueryXML ファイルすべてを追加します。

アプリケーションの展開後、DB2 パッケージのルート・パッケージ名、コレクション ID、バージョンなどを訂正する必要が生じた場合、defaultOptions の行が適用されるすべての pureQueryXML ファイルの項目が、Default.genProps ファイルに含まれていることも確認してください。 また、このファイルを右クリックし、「項目の追加または除去」ウィンドウを使用しても、項目を追加することができます。


フィードバック