pureQuery クライアント最適化を使用するようにコール・レベル・インターフェース (CLI) アプリケーションを構成すると、CLI クライアント・ドライバーは、既存の DB2® CLI アプリケーションで SQL ステートメントを静的に実行できるようにするなど、pureQuery 機能を使用可能にすることができます。SQL ステートメントを静的に実行すると、実行時に SQL ステートメントを準備する必要がなくなり、アプリケーションのセキュリティーおよびパフォーマンスを向上させることができます。
このタスクについて
pureQuery クライアント最適化を使用する CLI アプリケーションを構成するには、まず CLI アプリケーションによって発行される SQL ステートメントをキャプチャーするように CLI アプリケーションを構成します。次に、アプリケーションによって発行される SQL ステートメントの実行を制御するようにアプリケーションを構成します。
- アプリケーションを DB2 データベースと接続すると、SQL ステートメントを静的に実行するようにアプリケーションを構成できます。
この構成プロセスには、キャプチャーした SQL ステートメントを含む pureQueryXML ファイルを構成し、キャプチャーした SQL ステートメントをバインドするという追加のステップが含まれています。
- Informix® データベースは、SQL ステートメントの静的な実行をサポートしていません。アプリケーションを Informix データベースと接続すると、他の pureQuery 機能を使用して、アプリケーションがデータベースに対して実行する SQL ステートメントを制御できます。これらの機能は、pureQuery クライアント最適化に対応し、かつ、Informix または DB2 のいずれかのデータベースに接続している CLI アプリケーションで使用できます。
このタスクでは、pureQuery クライアント最適化を使用する CLI アプリケーションを構成する方法を示します。
手順
pureQuery クライアント最適化を使用する CLI アプリケーションを構成するには、次のようにします。
- アプリケーションによって発行される SQL ステートメントをキャプチャーするために、CLI アプリケーション構成ファイルで pureQuery キーワードを設定します。
db2cli.ini ファイルまたは db2dsdriver.cfg ファイルのいずれかでキーワードを設定します。db2cli.ini ファイルでの設定は、db2dsdriver.cfg ファイルでの設定に優先します。
- captureMode キーワードの値を ON に設定します。
- executionMode キーワードの値を DYNAMIC に設定します。
executionMode キーワードのデフォルト値は、DYNAMIC です。ファイルにこのキーワードがあると、デフォルト値を再認識できます。
- pureQueryXML キーワードの値を、キャプチャーした SQL データを保管する pureQueryXML ファイルのパスおよびファイル名に設定します。
pureQueryXML ファイルの拡張子は、.xml または .pdqxml でなければなりません。次の例の
db2dsdriver.cfg 構成ファイルでは、
これらの pureQuery Runtime キーワードが指定されています。
<configuration>
<dsncollection>
<dsn alias="alias1" name="name1" host="server1.net1.com" port="50001">
<parameter name="captureMode" value="on"/>
<parameter name="executionMode" value="dynamic"/>
<parameter name="pureQueryXml" value="testclico.pdqxml"/>
</dsn>
</dsncollection>
<databases>
<database name="name1" host="server1.net1.com" port="50001">
<parameter name="CommProtocol" value="TCPIP"/>
</database>
</databases>
</configuration>
- アプリケーションを実行して、SQL ステートメントを pureQueryXML ファイルにキャプチャーします。
処理のために pureQueryXML ファイルを移動する場合は、ファイルを取得する際に pureQueryXML ファイルに書き込みが行われていないことを確認してください。
書き込みが行われているときにファイルを取得すると、ファイルの内容が無効になったり、アプリケーションでファイルを更新できなくなって入出力エラーが発生したりする場合があります。
- SQL ステートメントを静的に実行する必要がある: pureQueryXML ファイルを構成し、次にファイル内の SQL ステートメントを使用して、パッケージをアプリケーション・データベース上に作成し、データベースにパッケージをバインドします。
pureQuery Runtime がインストールされており、かつ、Java ベースの pureQuery ユーティリティー Configure および StaticBinder を実行するように構成されているコンピューターで、pureQueryXML ファイルを処理します。
- 必要な場合、pureQuery ユーティリティーを実行するよう構成されているコンピューターに pureQueryXML ファイルをコピーします。
- pureQuery Configure ユーティリティーを実行して、パッケージ名およびコレクション ID を含む pureQueryXML ファイルを構成します。
コマンド・プロンプトで、Configure ユーティリティーを実行して、pureQuery StaticBinder ユーティリティーで使用されるパッケージ名およびコレクション ID などの情報を pureQueryXML ファイルに追加します。他のオプションを指定して、ファイル内の SQL ステートメントを管理することもできます。
- 構成済みの pureQueryXML ファイルを使用して pureQuery StaticBinder ユーティリティーを実行し、ターゲットの DB2 サーバー上にパッケージを作成し、バインドします。
コマンド・プロンプトで、StaticBinder ユーティリティーを実行して、データベースにファイルをバインドします。データベースおよびパッケージ情報を指定するオプションを使用して、StaticBinder ユーティリティーを実行します。
- 必要な場合、CLI アプリケーションが実行されるコンピューター上の pureQueryXML ファイルを処理済みのファイルに置換します。
- SQL ステートメントの実行を制御するための CLI アプリケーションの構成を更新します。
db2cli.ini 構成ファイルまたは db2dsdriver.cfg 構成ファイルを見つけて、キーワードと値を更新します。以下のリストは、サンプルの構成について説明しています。
- SQL ステートメントを静的に実行するようにアプリケーションを構成するには、次のキーワードと値を更新します。
- captureMode キーワードの値を OFF に設定します。
- executionMode キーワードの値を STATIC に設定します。
- pureQueryXML キーワードの値を、キャプチャーした SQL ステートメントを含む pureQueryXML のパスおよびファイル名に設定します。
これらのキーワード設定で、CLI アプリケーションは SQL ステートメントを静的に実行するようになります。次の例の db2dsdriver.cfg 構成ファイルでは、これらの pureQuery Runtime キーワードが指定されています。
<configuration>
<dsncollection>
<dsn alias="alias1" name="name1" host="server1.net1.com" port="50001">
<parameter name="captureMode" value="off"/>
<parameter name="executionMode" value="static"/>
<parameter name="pureQueryXml" value="testclico.pdqxml"/>
</dsn>
</dsncollection>
<databases>
<database name="name1" host="server1.net1.com" port="50001">
<parameter name="CommProtocol" value="TCPIP"/>
</database>
</databases>
</configuration>
- アプリケーション SQL ステートメントを動的に実行し、アプリケーションによる実行が pureQueryXML ファイル内のステートメントのみに制限されるようにアプリケーションを構成するには、次のキーワードと値を更新します。
- captureMode キーワードの値を OFF に設定します。
- capturedOnly キーワードの値を TRUE に設定します。
- executionMode キーワードの値を DYNAMIC に設定します。
- pureQueryXml キーワードの値を、キャプチャーされた SQL ステートメントを含む pureQueryXML のパスおよびファイル名に設定します。
これらのキーワード設定で、CLI アプリケーションは SQL ステートメントを動的に実行するようになります。pureQueryXML ファイル内の SQL ステートメントのみが実行されます。pureQueryXML ファイルにない SQL ステートメントをアプリケーションが発行すると、エラーが返されます。次の例の
db2dsdriver.cfg 構成ファイルでは、これらの pureQuery Runtime キーワードが指定されています。
<configuration>
<dsncollection>
<dsn alias="alias1" name="name1" host="server1.net1.com" port="50001">
<parameter name="captureMode" value="off"/>
<parameter name="capturedOnly" value="TRUE"/>
<parameter name="executionMode" value="dynamic"/>
<parameter name="pureQueryXml" value="testclico.pdqxml"/>
</dsn>
</dsncollection>
<databases>
<database name="name1" host="server1.net1.com" port="50001">
<parameter name="CommProtocol" value="TCPIP"/>
</database>
</databases>
</configuration>
- 構成ファイルおよび pureQueryXML ファイル内の更新された情報を使用するために、アプリケーションを実行または再開します。
タスクの結果
pureQuery クライアント最適化に対応した CLI アプリケーションが、指定した構成に基づいて SQL ステートメントを実行するようになります。
pureQuery Runtime は、pureQuery Runtime キーワードが構成ファイルで指定された場合に、有効な pureQuery ライセンスがあるかどうかを検査します。
有効な pureQuery ライセンスが見つからない場合、pureQuery Runtime は終了し、エラー・コード SQL8029N を返します。
次のタスク
データベースで作成されたリポジトリーに pureQueryXML ファイル・データを保管できます。
CLI アプリケーションで pureQueryXML ファイル・データを取得して使用するには、
データが含まれているリポジトリーおよびアクティブ・ランタイム・グループを
指すように pureQuery キーワード pureQueryXmlRepository および propertiesGroupId を指定します。
リポジトリーについては、『さまざまなロケーションにおける pureQuery データのアクセスおよび保管』を参照してください。