コール・レベル・インターフェース (CLI) または .NET アプリケーションを pureQuery クライアント最適化に対応させた場合、SQL ステートメントを DB2® データベース上で静的に実行するように構成できます。
SQL ステートメントを静的に実行すると、実行時にある種の SQL ステートメントを準備する必要がなくなり、アプリケーションのセキュリティーおよびパフォーマンスを向上させることができます。
始める前に
CLI または .NET アプリケーションを 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 または .NET アプリケーションが DB2 データベースに接続しており、次の接続 URL を使用してデータベースに接続できることを想定しています。
jdbc:db2://svl01:500/DB2M -user user01 -password myPass
アプリケーションを構成するには、db2cli.ini 構成ファイルでキーワードを設定します。CLI または .NET アプリケーションを、そのアプリケーションが発行する SQL ステートメントをキャプチャーするように構成した後、それらのステートメントを静的に実行するようにアプリケーションを構成します。
手順
CLI または .NET アプリケーションから SQL ステートメントを静的に実行するには、次のようにします。
- アプリケーションによって発行される SQL ステートメントをキャプチャーするために、アプリケーション構成ファイルに pureQuery キーワードを設定します。
- CLI アプリケーションに対して db2cli.ini 構成ファイルを使用する場合は、次のように pureQuery キーワードを設定します。
captureMode=ON
executionMode=DYNAMIC
pureQueryXml=C:¥testapp¥Sample1Cptr.pdqxml
- CLI アプリケーションまたは .NET アプリケーションのいずれかに対して db2dsdriver.cfg ファイルを使用する場合は、次のようにして parameter エレメントの属性としてキーワードを設定します。
<parameter name="captureMode" value="ON"/>
<parameter name="executionMode" value="DYNAMIC"/>
<parameter name="pureQueryXml" value="C:¥testapp¥Sample1Cptr.pdqxml"/>
これらのキーワード設定により、アプリケーションは、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 ファイルに置換します。
- アプリケーション構成ファイルの executionMode キーワードの値を更新して、キャプチャーしたステートメントを実行するようにします。 キーワード値を DYNAMIC から STATIC に変更します。
- CLI アプリケーションに対して db2cli.ini 構成ファイルを使用する場合は、このキーワードを含む行を次のように変更します。
captureMode=ON
executionMode=STATIC
pureQueryXml=C:¥testapp¥Sample1Cptr.pdqxml
- CLI アプリケーションまたは .NET アプリケーションのいずれかに対して db2dsdriver.cfg ファイルを使用する場合は、parameter エレメントの属性を次のように変更します。
<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 ステートメントの実行を制限する構成の一例は、
captureMode キーワードの値を
OFF に設定し、キーワードと値
capturedOnly=
TRUE を追加することです。
db2cli.ini 構成ファイルでは、キーワード設定は次のようなキーワードになります。
captureMode=OFF
capturedOnly=TRUE
executionMode=STATIC
pureQueryXml=C:¥testapp¥Sample1Cptr.pdqxml
db2dsdriver.cfg ファイルの場合は、parameter エレメントを次のように設定します。
<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 ファイルにキャプチャーされません。