pureQuery クライアント最適化に対応したコール・レベル・インターフェース (CLI) アプリケーションを、DB2® データベース上で SQL ステートメントを静的に実行するように構成できます。
SQL ステートメントを静的に実行すると、実行時にある種の SQL ステートメントを準備する必要がなくなり、アプリケーションのセキュリティーおよびパフォーマンスを向上させることができます。
始める前に
CLI アプリケーションを pureQuery クライアント最適化に対応させます。
pureQuery Runtime は、Java ベースの pureQuery Configure ユーティリティーおよび StaticBinder ユーティリティーを実行するコンピューターにインストールして、使用可能にする必要があります。次の製品がコンピューターにインストールされている必要があります。
- Java Runtime Environment
(JRE) バージョン 1.5 以降
- IBM® Data Server Driver for
JDBC and SQLJ バージョン 3.57.xx
pureQuery Runtime JAR ファイル、pdq.jar および pdqmgmt.jar、および Data Server Driver JAR ファイルは、ユーティリティーを実行するコンピューター上の CLASSPATH にリストされている必要があります。
このタスクについて
このタスクでは、CLI アプリケーションは DB2 データベースに接続しており、次の接続 URL を使用してデータベースに接続できると仮定しています。
jdbc:db2://svl01:500/DB2M -user user01 -password myPass
アプリケーションを構成するには、db2cli.ini 構成ファイルでキーワードを設定します。CLI アプリケーションを、それが発行する SQL ステートメントをキャプチャーするように構成し、次にステートメントを静的に実行するように構成します。
手順
CLI アプリケーションから SQL ステートメントを静的に実行するには、次のようにします。
- アプリケーションによって発行される SQL ステートメントをキャプチャーするために、CLI アプリケーション構成ファイルで pureQuery キーワードを設定します。
アプリケーションによって発行される SQL ステートメントをキャプチャーするためにそのアプリケーションで使用される db2cli.ini 構成ファイルで、次のキーワードを更新します。
captureMode=ON
executionMode=DYNAMIC
pureQueryXml=C:¥testapp¥Sample1Cptr.pdqxml
代わりに db2dsdriver.cfg ファイルを使用する場合は、次のようにパラメーター・エレメントの属性としてキーワードを設定します。
<parameter name="captureMode" value="ON"/>
<parameter name="executionMode" value="DYNAMIC"/>
<parameter name="pureQueryXml" value="C:¥testapp¥Sample1Cptr.pdqxml"/>
これらのキーワード設定により、CLI アプリケーションは、SQL ステートメントを動的に実行し、正常に実行されたステートメントをファイル C:¥testapp¥Sample1Cptr.pdqxml にキャプチャーするように構成されます。
executionMode キーワードの値 DYNAMIC はデフォルトであり、プロパティー・ファイルで必須ではありません。ファイルにこのプロパティーを含めると、デフォルト値を再認識できます。SQL ステートメントを静的に実行するために、値は変更されます。
pureQueryXml キーワードの値は、pureQuery クライアント最適化がアプリケーションからキャプチャーされた SQL データを保管する pureQueryXML ファイルのロケーションと名前を指定します。この値は、pureQuery クライアント最適化が SQL ステートメントの実行を制御するために使用する pureQueryXML ファイルのロケーションと名前でもあります。
SQL ステートメントを DB2 データベース上で静的に実行するように pureQuery クライアント最適化を構成している場合、pureQuery Runtime はこのファイルの情報を使用して実行する SQL ステートメントを判別します。
- アプリケーションを実行して、SQL ステートメントを pureQueryXML ファイルにキャプチャーします。
SQL ステートメントが pureQueryXML ファイルにキャプチャーされます。
- キャプチャーした SQL ステートメントを含む pureQueryXML ファイルを構成し、キャプチャーした SQL ステートメントをバインドします。
- 必要な場合、pureQuery Runtime がインストールされているコンピューターに pureQueryXML ファイルをコピーします。
- pureQuery Configure ユーティリティーを実行して、パッケージ名およびコレクション ID を含む pureQueryXML ファイルを構成します。
コマンド・プロンプトで、Configure ユーティリティーを実行して、pureQuery StaticBinder ユーティリティーで使用されるパッケージ名およびコレクション ID などの情報を pureQueryXML ファイルに追加します。他のオプションを指定して、ファイル内の SQL ステートメントを管理することもできます。
次のサンプル・コマンドは、Configure ユーティリティーを実行し、SMPL1 という名前の基本パッケージと COLL01 という名前のコレクションを指定します。コマンドは単一行で入力します。
java com.ibm.pdq.tools.Configure -pureQueryXml Sample1Cptr.pdqxml
-rootPkgName SMPL1 -collection COLL01
- 構成済みの pureQueryXML ファイルを使用して pureQuery StaticBinder ユーティリティーを実行し、ターゲットの DB2 サーバー上にパッケージを作成し、バインドします。
コマンド・プロンプトで、データベースおよびパッケージ情報を指定するオプションを使用して、StaticBinder ユーティリティーを実行します。次の StaticBinder サンプル・コマンドは、パッケージをターゲットの DB2 サーバー上に作成し、バインドします。コマンドは単一行で入力します。
java com.ibm.pdq.tools.StaticBinder
-url jdbc:db2://svl01:500/DB2M -user user01 -password myPass
-pureQueryXml Sample1Cptr.pdqxml
- 必要な場合、アプリケーションが実行されるコンピューター上の pureQuerXML ファイルを構成済みの pureQueryXML ファイルに置換します。
- CLI アプリケーション構成ファイルを更新して、キャプチャーしたステートメントを静的に実行します。
db2cli.ini 構成ファイルの pureQuery executionMode キーワードを更新して、アプリケーションによって発行される SQL ステートメントの静的実行を有効にします。キーワード値が DYNAMIC から STATIC に変更されます。
captureMode=ON
executionMode=STATIC
pureQueryXml=C:¥testapp¥Sample1Cptr.pdqxml
db2dsdriver.cfg ファイルを使用する場合は、次のようにパラメーター・エレメントの属性としてキーワードを設定します。
<parameter name="captureMode" value="ON" />
<parameter name="executionMode" value="STATIC" />
<parameter name="pureQueryXml" value="C:¥testapp¥Sample1Cptr.pdqxml" />
- 構成ファイルおよび pureQueryXML ファイル内の更新された情報を使用するために、アプリケーションを実行または再開します。
タスクの結果
アプリケーションを実行すると、アプリケーションによって発行された 2 つの SQL ステートメントが静的に実行されます。アプリケーションを更新して SQL ステートメントを変更または追加すると、更新された SQL ステートメントまたは新しい SQL ステートメントが動的に実行されて、pureQueryXML ファイルにキャプチャーされます。
ヒント: pureQueryXML ファイルにキャプチャーされた SQL ステートメントのみを実行するようにアプリケーションを制限できます。SQL ステートメントの実行を制限する構成の 1 つは、次のように
captureMode キーワードを
OFF に設定し、キーワードと値
capturedOnly=
TRUE を追加することです。
captureMode=OFF
capturedOnly=TRUE
executionMode=STATIC
pureQueryXml=C:¥testapp¥Sample1Cptr.pdqxml
db2dsdriver.cfg ファイルで、次のようにパラメーター・エレメントを設定します。
<parameter name="captureMode" value="OFF" />
<parameter name="capturedOnly" value="TRUE" />
<parameter name="executionMode" value="STATIC" />
<parameter name="pureQueryXml" value="C:¥testapp¥Sample1Cptr.pdqxml" />
この構成により、pureQueryXML ファイル内の SQL ステートメントのみが実行され、SQL ステートメントが静的に実行されます。更新された SQL ステートメントまたは新しい SQL ステートメントは、pureQueryXML ファイルにキャプチャーされません。