< 前へ | 次へ >

演習 2: ワークベンチ環境の外部の pureQuery 環境を構成する

pureQuery のクライアント最適化が有効な状態で Java アプリケーションを実行するように、コンピューターの環境を構成します。
始める前に
以下のソフトウェアがシステムにインストールされていることを確認します。
  • Java Developer Kit バージョン 1.5 以降
  • IBM® Data Server Driver for JDBC and SQLJ バージョン 3.57
  • pureQuery ランタイム・バージョン 2.2.1

前の演習では、Java アプリケーションをコンピューターの C:¥pureQuery-test ディレクトリーにエクスポートし、SAMPLE DB2® データベースに対してアプリケーションを実行しました。

この演習では、Java 環境を構成し、アプリケーションで pureQuery のクライアント最適化を有効にします。アプリケーションから SQL ステートメントを取り込み、アプリケーションによって発行された SQL ステートメントを静的に実行するように、pureQuery ランタイムとターゲット・データベースを構成します。

  1. 前の演習の後でコマンド・ウィンドウを閉じた場合は、新しくコマンド・ウィンドウを開き、CLASSPATH 環境変数をウィンドウに対して設定してください。
    1. コマンド・プロンプト・ウィンドウを開き、ディレクトリーを c:¥pureQuery-test に設定します。

      ウィンドウに cd c:¥pureQuery-test コマンドを入力します。

    2. SET コマンドを使用して CLASSPATH にファイルを追加します。
      例えば、DB2 データベース・ドライバーの JAR ファイルが C:¥DB2¥drivers ディレクトリーにインストールされている場合は、コマンド・プロンプト・ウィンドウで次のコマンドを使用して CLASSPATH にファイルを追加します。次の SET コマンドを 1 行で入力します。
      set CLASSPATH=C:¥DB2¥drivers¥db2jcc_license_cu.jar;C:¥DB2¥drivers¥db2jcc.jar;
          C:¥pureQuery-test¥MyTestApp.jar;%CLASSPATH%;
      ヒント: DB2 データベース・ドライバー JAR ファイルの デフォルト・ディレクトリーは C:¥Program Files¥IBM¥SQLLIB¥java です。
  2. pureQuery ランタイムの JAR ファイルの場所を、SET コマンドを使用して CLASSPATH に追加します。
    例えば、pureQuery の JAR ファイルが C:¥pureQuery ディレクトリーにインストールされている場合は、次のコマンドを実行して CLASSPATH にファイルを追加します。
    set CLASSPATH=C:¥pureQuery¥pdq.jar;C:¥pureQuery¥pdqmgmt.jar;.;%CLASSPATH%;
    pureQuery ランタイムの JAR ファイルがアプリケーションの CLASSPATH にあると、アプリケーションは pureQuery のクライアント最適化などの pureQuery ランタイムの機能を使用できます。
  3. pureQuery のクライアント最適化が有効になっているアプリケーションを実行するときに使用される pureQuery ランタイムのプロパティー・ファイルを作成します。
    1. テスト・ディレクトリーに mytest.properties プロパティー・ファイルを作成します。
    2. pureQuery のプロパティーをファイルに追加します。

      テキスト・エディターで、次の pureQuery ランタイム・プロパティーを mytest.properties ファイルに追加します。

      pdq.captureMode=ON
      pdq.executionMode=DYNAMIC
      pdq.pureQueryXml=./mytestsql.pdqxml
    3. ファイルを保存します。

    この pureQuery ランタイム・プロパティーでは、pureQuery ランタイムが SQL ステートメントを動的に実行して、mytestsql.pdqxml pureQueryXML ファイルに SQL ステートメントを取り込むように指定されています。

  4. pureQuery のクライアント最適化を有効にしてアプリケーションを 2 回実行し、SQL ステートメントを取り込みます。

    pureQuery ランタイムのプロパティーは複数の方法で指定できます。以下のどのタスクでも、SQL ステートメントを mytest.pdqxml pureQueryXML ファイルに取り込むようにプロパティーを設定して、アプリケーションを実行します。

    次のいずれかのタスクを行います。

    • アプリケーションを実行し、pdqProperties オプションで finalRepositoryProperties pureQuery ランタイム・プロパティーを指定します。コマンド・プロンプト・ウィンドウで、次の 2 つの Java コマンドをそれぞれ 1 行で入力します。
      java -Ddb2.jcc.pdqProperties=finalRepositoryProperties(file://C:/pureQuery-test/mytest.properties)
         myTestApp.MySample
      
      java -Ddb2.jcc.pdqProperties=finalRepositoryProperties(file://C:/pureQuery-test/mytest.properties)
         myTestApp.MySample 1

      finalRepositoryProperties pureQuery ランタイム・プロパティーは、mytest.properties ファイルから pureQuery プロパティーを取得するよう pureQuery ランタイムに指定します。

    • アプリケーションを実行し、3 つの pureQuery ランタイム・プロパティーを pdqProperties オプションで指定します。コマンド・プロンプト・ウィンドウで、次の 2 つの Java コマンドをそれぞれ 1 行で入力します。pureQuery ランタイム・プロパティーの間にはスペースを入力しないでください。
      java -Ddb2.jcc.pdqProperties=captureMode(ON),pureQueryXml(./mytestsql.pdqxml),
         capturedOnly(FALSE),executionMode(DYNAMIC) myTestApp.MySample
      
      java -Ddb2.jcc.pdqProperties=captureMode(ON),pureQueryXml(./mytestsql.pdqxml),
         capturedOnly(FALSE),executionMode(DYNAMIC) myTestApp.MySample 1
    • pdq.properties デフォルト・プロパティー・ファイルの構成で、アプリケーションを実行します。
      C:¥pureQuery-test¥pdq.properties という名前の、mytest.properties pureQuery プロパティー・ファイルのコピーを作成します。その後、次の 2 つの Java コマンドをコマンド・プロンプト・ウィンドウに入力します。
      java myTestApp.MySample
      
      java myTestApp.MySample 1

      pureQuery ランタイムは、特定の順序で、指定されている一連の場所でプロパティー値を検索します。検索場所には、pdq.properties ファイルに対するアプリケーションの CLASSPATH ディレクトリーが含まれます。

      プロパティーの値が見つからない場合、pureQuery ランタイムは、そのプロパティーのデフォルト値を使用します。executionMode および captureMode プロパティーのデフォルト値では、ステートメントが動的に実行されて、SQL ステートメントは取り込まれません。

    アプリケーションが実行され、pureQuery ランタイムによって SQL ステートメントが mytestsql.pdqxml pureQueryXML ファイルに取り込まれます。

  5. pureQuery Configure ユーティリティーを実行して、pureQueryXML ファイルを構成します。
    コマンド・プロンプト・ウィンドウで、次のコマンドを 1 行に入力します。
    java com.ibm.pdq.tools.Configure -pureQueryXml mytestsql.pdqxml
       -rootPkgName MYTEST -validateXml TRUE
    Configure ユーティリティーによって pureQueryXML ファイルが検証および構成されます。-rootPkgName オプションの値は MYTEST であり、この pureQueryXML ファイルから作成されるパッケージは、ワークベンチから作成されるパッケージとは異なる名前になります。
  6. pureQuery の StaticBinder ユーティリティーを実行し、データベースに対するバインド操作を実行します。
    コマンド・プロンプト・ウィンドウで、コマンドを 1 行に入力します。オプション -url-user、および -password の値は、使用している SAMPLE データベースに接続するための値に置き換えます。
    java com.ibm.pdq.tools.StaticBinder
      -url jdbc:db2://localhost:50000/SAMPLE -user user01 -password myPass
       -pureQueryXml mytestsql.pdqxml
    注: バインド処理に関する詳細情報を表示するには、コマンドに -showDetails true オプションを追加します。
  7. mytest.properties pureQuery ランタイム・プロパティー・ファイルを更新します。
    • captureMode プロパティーの値を OFF に変更
    • executionMode プロパティーの値を STATIC に変更
    • 値が FALSEallowDynamicSQL プロパティーを追加
    更新後のファイルには次のプロパティーが含まれます。
    pdq.captureMode=OFF
    pdq.executionMode=STATIC
    pdq.allowDynamicSQL=FALSE
    pdq.pureQueryXml=./mytestsql.pdqxml

    この変更により、pureQuery ランタイムは、アプリケーションからの SQL ステートメントを静的に実行し、mytestsql.pdqxml pureQueryXML ファイル内の SQL ステートメントを実行するように構成されます。

  8. pureQuery のクライアント最適化を有効にし、mytest.properties ファイルの構成を使用して、アプリケーションを実行します。
    コマンド・プロンプト・ウィンドウで、次のコマンドを 1 行に入力します。
    java -Ddb2.jcc.pdqProperties=finalRepositoryProperties(file://C:/pureQuery-test/mytest.properties)
       myTestApp.MySample 2

    2 を使用すると、アプリケーションは pureQueryXML ファイルにない SQL ステートメントを発行します。アプリケーションが実行され、SQL ステートメントが pureQueryXML ファイルで見つからなかったことを示すエラーが表示されます。

  9. 同じ pureQuery ランタイム構成でアプリケーションを実行し、pureQueryXML ファイル内にあるステートメントを発行します。
    コマンド・プロンプト・ウィンドウで、次のコマンドを 1 行に入力します。
    java -Ddb2.jcc.pdqProperties=finalRepositoryProperties(file://C:/pureQuery-test/mytest.properties)
       myTestApp.MySample
    アプリケーションが実行され、SQL ステートメントが静的に実行されます。

演習のチェックポイント

この演習では、Java アプリケーションで pureQuery のクライアント最適化を有効にし、SQL ステートメントを静的に実行するようにアプリケーションと SAMPLE データベースを構成しました。
以下のタスクを完了しました。
  • CLASSPATH を pureQuery ランタイム JAR ファイルで更新しました。
  • pureQuery ランタイム・プロパティー・ファイルを作成し、pureQuery プロパティーを設定しました。
  • Java アプリケーションを実行し、アプリケーションが発行した SQL ステートメントを取り込みました。
  • pureQuery の Configure ユーティリティーと StaticBinder ユーティリティーを実行して、pureQueryXML ファイルを処理し、pureQueryXML ファイルのバインド操作を実行しました。
  • Java アプリケーションを実行し、SQL ステートメントを静的に実行しました。

この演習では、SQL 照会を含む pureQueryXML ファイルを構成しました。DDL ステートメントを含む pureQueryXML ファイルを構成すると、DECLARE GLOBAL TEMPORARY TABLE 以外の DDL ステートメントは別のファイルに移動されます。例えば、pureQueryXML ファイルに表を作成する SQL ステートメントを取り込んだとします。ファイルを構成すると、表を作成するステートメントは別のファイルに移動されます。pureQuery Configure ユーティリティーが DDL ステートメントを処理する方法については、『Configure ユーティリティー』を参照してください。

pureQuery サポートが有効になっているワークベンチの Java プロジェクトでは、pureQueryXML ファイル構成処理は DDL ステートメントを Configure ユーティリティーと同じように処理します。

pureQuery ランタイム・プロパティーの設定については、『クライアント最適化のプロパティーを設定できる場所の優先順位』を参照してください。

finalRepositoryProperties pureQuery ランタイム・プロパティーについては、『finalRepositoryProperties プロパティー』を参照してください。

< 前へ | 次へ >

フィードバック