< 前へ | 次へ >

演習 3: SQL ステートメントを静的に実行するように pureQuery ランタイムを構成する

pureQuery のクライアント最適化が有効になっているアプリケーションから SQL ステートメントを取り込んだ後、DB2® データベースで SQL ステートメントを静的に実行するように pureQuery ランタイムを構成します。

始める前に

SAMPLE データベースへのアクティブな接続が必要です。アクティブな接続がない場合は、バインド操作を実行しようとすると、ワークベンチで接続を求められます。

前の演習で作成した pureQueryXML ファイルには、単一のステートメント・セットが含まれます。ファイルでバインド処理を実行すると、ターゲット・データベースに単一のパッケージ・セットが作成されます。この演習では、pureQueryXML ファイル内のステートメント・セット名を更新します。その後、pureQueryXML ファイルから単一のパッケージ・セットを作成し、これらのパッケージをバインドします。

ターゲット・データベースでバインディング処理を実行した後、pureQuery ランタイムのプロパティーを設定し、アプリケーションによって発行されたステートメントを pureQuery が静的に実行するように指定します。

pureQueryXML ファイルを更新すると、ワークベンチは必要に応じて pureQueryXML ファイルを構成します。構成処理では、pureQueryXML ファイル内の SQL ステートメントが管理されて、バインディング処理に必要な情報が追加されます。ワークベンチは、Default.genProps ファイルで定義されているオプションを使用して、capture.pdqxml pureQueryXML ファイルを構成します。

pureQueryXML ファイルの更新とファイルのバインディング処理の実行

ワークベンチを使用して、取り込まれた SQL ステートメントを含む pureQueryXML ファイルを更新します。その後、StaticBinder ユーティリティーを実行してファイルの SQL ステートメントをバインドします。

pureQueryXML ファイルを更新し、ファイルの SQL ステートメントをバインドするには、以下のようにします。

  1. パッケージ・エクスプローラー」ビューで、pq-tutorial Java プロジェクトの pureQueryFolder¥Default.genProps ファイルをダブルクリックします。
  2. -rootPkgName オプションの値を aatest に変更します。
    C:¥test¥pq-tutorial¥pureQueryFolder¥capture.pdqxml= -rootPkgName aatest

    -rootPkgName オプションでは、pureQueryXML ファイルで名前付きステートメント・セットを作成するために使用する基本ストリングを指定します。pureQueryXML ファイルでのステートメント・セット名は、ターゲット・データベースに作成されるパッケージの名前の基本ストリングです。

  3. ファイルを保存します。プロジェクトの再作成を確認するメッセージが表示されたら、「はい」をクリックします。
  4. 新しいステートメント・セット名で pureQueryXML ファイルを構成します。
    1. capture.pdqxml ファイルを pureQueryXML エディターで開きます。

      パッケージ・エクスプローラーpureQueryFolder¥capture.pqdxml ファイルを ダブルクリックして、pureQueryXML エディターで開きます。

    2. ファイルでステートメント・セット名を削除します。

      pureQueryXML エディターで、ステートメント名 pq-tutA を強調表示して、テキストを削除します。

    3. ファイルを閉じて保存します。
    4. ファイルを再び開きます。

    ファイルを保存すると、ワークベンチによって pureQueryXML ファイルが構成されます。構成処理によって、SQL ステートメントを含む aatestA という名前の単一のステートメント・セットが作成されます。ステートメント・セット名は、Default.genProps ファイルで指定されている -rootPkgName オプションの値 aatest が基になっています。

    図 1. ステートメント・セット名 aatestA で構成された pureQueryXML ファイル
    pureQueryXML エディターで構成された capture.pdqxml ファイル
  5. pureQueryXML ファイルの SQL ステートメントを SAMPLE データベースにバインドします。
    1. パッケージ・エクスプローラー」ビューで、capture.pdqxml ファイルを右クリックし、「pureQuery」 > 「バインド」をクリックします。接続の選択」ダイアログ・ボックスが開きます。
    2. SAMPLE 接続を選択し、「完了」をクリックします。
    ワークベンチが StaticBinder ユーティリティーを実行し、ユーティリティーからの出力を「コンソール」ビューに送信します。次に出力の例を示します。
    ================================================================================
    
    The StaticBinder utility is beginning the bind operation for the pureQueryXml 
       file 'C:¥test¥ODS-tutorial¥pq-tutorial¥pureQueryFolder¥capture.pdqxml'.
    
    Starting to process options:  
       -url "jdbc:db2://localhost:50000/SAMPLE:retrieveMessagesFromServerOnGetMessage=true;" 
       -username "*****" -password "*****" 
       -pureQueryXml "C:¥test¥ODS-tutorial¥pq-tutorial¥pureQueryFolder¥capture.pdqxml"
    
    The StaticBinder utility successfully bound the package 'aatestA1' for the isolation level 'UR'.
    The StaticBinder utility successfully bound the package 'aatestA2' for the isolation level 'CS'.
    The StaticBinder utility successfully bound the package 'aatestA3' for the isolation level 'RS'.
    The StaticBinder utility successfully bound the package 'aatestA4' for the isolation level 'RR'.
    
    The bind operation completed successfully for
      'C:¥test¥ODS-tutorial¥pq-tutorial¥pureQueryFolder¥capture.pdqxml'.
    
    ================================================================================
    
    Results of the StaticBinder utility's activity:
    
        Number of items for which the bind operation SUCCEEDED: 1
    
    
    Bind for XML file capture.pdqxml using connection SAMPLE in project pq-tutorial succeeded.

    ワークベンチは、pureQuery の StaticBinder ユーティリティーを実行して単一のパッケージ・セットを作成し、データベースでそのパッケージをバインドしました。pureQuery の StaticBinder ユーティリティーは、構成されている capture.pdqxml ファイルの情報とデフォルトの StaticBinder バインド・オプションに基づいて、パッケージを作成しました。

    パッケージのセットの名前は、pureQueryXML ファイルでのステートメント・セット名が基になっています。StaticBinder は 4 つのパッケージを作成しました。デフォルトで、StaticBinder は 4 つの DB2 分離レベル (UR、CS、RS、RR) のそれぞれに対してパッケージを作成します。

  6. データ・ソース・エクスプローラーの「SQL アウトライン」ビューでパッケージを探します。
    1. SQL アウトライン」ビューで、ビューの下部にある「データベース・パッケージ」タブをクリックして、「データベース・パッケージ」ウィンドウを開きます。
    2. パッケージ名を右クリックし、「データ・ソース・エクスプローラー内で検索」を選択します。

      データ・ソース・エクスプローラーが開き、SAMPLE 接続のフォルダーが展開して、パッケージが強調表示されます。

      パッケージ名は、pureQueryXML ファイルでのステートメント・セットの名前である aatest が基になっています。

SQL ステートメントを静的に実行するための pureQuery ランタイムの構成

SQL ステートメントを静的に実行するように、アプリケーションの pureQuery ランタイムのプロパティーを更新します。

SQL ステートメントを静的に実行するように pureQuery ランタイムを構成するには、以下のようにします。

  1. パッケージ・エクスプローラー」ビューで pdq.properties ファイルをダブルクリックします。

    ファイルが PDQ プロパティー・エディターで開かれます。

  2. pureQuery ランタイムのプロパティー・ファイルを更新します。
    • captureMode プロパティーの値を OFF に変更
    • 値が TRUEcapturedOnly プロパティーを追加
    • executionMode プロパティーの値を STATIC に変更
    更新後のファイルには次のプロパティーが含まれます。
    pdq.captureMode=OFF
    pdq.capturedOnly=TRUE
    pdq.executionMode=STATIC
    pdq.pureQueryXml=pureQueryFolder/capture.pdqxml
  3. ファイルを保存して閉じます。
  4. アプリケーションを実行します。

    MySample.java ファイルを右クリックし、「実行」 > 「Java アプリケーション」をクリックします。

    アプリケーションが実行され、結果が「コンソール」ウィンドウに返されます。

pureQueryXML ファイルとデータベース上のパッケージの間のマッピングのテスト

pureQueryXML ファイルの情報を変更すると、ファイル内の SQL ステートメントと、SQL ステートメントを静的に実行するデータベース上のパッケージの間のマッピングも変更されます。マッピングが変更された場合は、データベースに新しいパッケージを作成して、パッケージをバインドする必要があります。

pureQueryXML ファイルとデータベース上のパッケージの間のマッピングをテストするには、以下のようにします。

  1. pureQueryXML ファイルで、ステートメント・セット名を aatest から aatut に変更します。
    1. パッケージ・エクスプローラー」で capture.pdqxml をダブルクリックします。

      ファイルが pureQueryXML エディターで開かれます。

    2. pureQueryXML エディターで、ステートメント・セット名を右クリックし、名前を aatut に変更します。
    3. ファイルを保存して閉じます。

      「OK」をクリックして変更の保存を確認します。

  2. アプリケーションを実行します。

    パッケージが見つからないというアプリケーション・エラー (SQLCODE=-805) が「コンソール」ウィンドウに表示されます。

    パッケージはデータベースにまだ存在しますが、pureQueryXML ファイルでステートメント・セット名を変更したため、pureQuery ランタイムはパッケージを発見できません。pureQuery ランタイムは、ステートメント・セット名を使用してパッケージ名を決定します。

  3. 更新後の pureQueryXML ファイルの SQL ステートメントをバインドします。
    1. capture.pdqxml ファイルを右クリックし、「pureQuery」 > 「バインド」をクリックします。
    2. 接続の選択」ダイアログ・ボックスで、SAMPLE データベースを選択して「完了」をクリックします。

    バインド情報が「コンソール」ウィンドウに表示されます。

    StaticBinder ユーティリティーは pureQueryXML ファイルの更新されたステートメント・セット名を使用して、データベースに新しいパッケージを作成します。以前に作成した、ステートメント名 aatestA に基づくパッケージは、除去されません。

  4. アプリケーションを実行します。

    パッケージ・エクスプローラーMySample.java ファイルを右クリックし、「実行」 > 「Java アプリケーション」をクリックします。

    アプリケーションが実行され、結果が「コンソール」ウィンドウに返されます。

演習のチェックポイント

ワークベンチから、SQL ステートメントを静的に実行するために、pureQuery のクライアント最適化が有効なアプリケーションを構成しました。
ワークベンチから、以下のタスクを実行しました。
  • pureQueryXML ファイルを更新し、ワークベンチがファイルを構成したことを確認しました。
  • StaticBinder をワークベンチから実行して、パッケージを作成し、パッケージをデータベースにバインドしました。
  • pureQueryXML ファイルを pureQueryXML エディターで表示しました。
  • アプリケーションによって発行された SQL ステートメントを静的に実行するように、pureQuery ランタイムのプロパティーを設定しました。
  • DB2 データベースでパッケージを検索しました。
  • pureQueryXML ファイルを更新し、データベースの SQL ステートメントを再びバインドしました。
< 前へ | 次へ >

フィードバック