DYNAMIC モードで実行中の JDBC アプリケーションのプロパティーの設定

DYNAMIC モードで実行中の JDBC アプリケーションの pureQuery プロパティーを設定する際には、以下の構文図を参考にしてください。

このトピックには以下のセクションが含まれています。

キャプチャーされた SQL ステートメントの動的な実行

以下のように設定してアプリケーションを実行した場合、pureQuery は、そのステートメントを再実行する必要のある接続用の pureQueryXML ファイル内にその SQL ステートメントがあるかどうかを検査します。続いて、pureQuery は、以下のいずれかのアクションを実行します。
  • ステートメントが pureQueryXML ファイルにある場合、pureQuery はステートメントを動的に実行します。
  • ステートメントが pureQueryXML ファイルにない場合、pureQuery は例外をスローします。
表 1. 必要な設定
Property Setting
capturedOnly TRUE
pureQueryXml file-name.pdqxml or file-name.xml

このような設定の組み合わせの場合、pureQuery は allowDynamicSQL の値を無視します。

キャプチャーされた SQL ステートメントの動的な実行とキャプチャーされたステートメントの置換に関する設定

以下のように設定してアプリケーションを実行した場合、pureQuery は、そのステートメントを再実行する必要のある接続用の pureQueryXML ファイル内にその SQL ステートメントがあるかどうかを検査します。続いて、pureQuery は、以下のいずれかのアクションを実行します。
  • ステートメントが pureQueryXML ファイルにある場合、pureQuery はステートメントを動的に実行します。
  • ステートメントが pureQueryXML ファイルにあり、自動生成されるキーを使用せず、対応する <processedSql> 要素に置換用 SQL ステートメントが含まれている場合、pureQuery は、置換用 SQL ステートメントを動的に実行します。
  • ステートメントが pureQueryXML ファイルにない場合、pureQuery は例外をスローします。
表 2. 必要な設定
Property Setting
capturedOnly TRUE
enableDynamicSQLReplacement TRUE
pureQueryXml file-name.pdqxml or file-name.xml

このような設定の組み合わせの場合、pureQuery は allowDynamicSQL の値を無視します。

キャプチャーされた SQL ステートメントとキャプチャーされていない SQL ステートメントの動的な実行とキャプチャーされたステートメントの置換に関する設定

以下のように設定してアプリケーションを実行した場合、pureQuery は、そのステートメントを再実行する必要のある接続用の pureQueryXML ファイル内にその SQL ステートメントがあるかどうかを検査します。続いて、pureQuery は、以下のいずれかのアクションを実行します。
  • ステートメントが pureQueryXML ファイルにある場合、pureQuery はステートメントを動的に実行します。
  • ステートメントが pureQueryXML ファイルにあり、自動生成されるキーを使用せず、対応する <processedSql> 要素に置換用 SQL ステートメントが含まれている場合、pureQuery は、置換用 SQL ステートメントを動的に実行します。
  • ステートメントが pureQueryXML ファイルにない場合、pureQuery はステートメントを動的に実行します。
表 3. 必要な設定
Property Setting
enableDynamicSQLReplacement TRUE
pureQueryXml file-name.pdqxml or file-name.xml

このような設定の組み合わせの場合、pureQuery は allowDynamicSQL の値を無視します。

プロパティーの説明

capturedOnly
pureQueryXML ファイル内にある SQL ステートメントのみを実行するかどうかを指定します。
TRUE
アプリケーションは、pureQueryXML ファイル内にある SQL ステートメントのみを実行します。
FALSE
アプリケーションは、pureQueryXML ファイル内にないものも含めすべての SQL ステートメントを実行します。
captureMode
SQL ステートメントに関する情報を取り込むかどうかを指定します。この情報は、pureQueryXml オプションで指定されたファイルに書き込まれます。
ON
アプリケーションの実行時に SQL ステートメントを取り込むように指定します。
OFF
アプリケーションの実行時に SQL ステートメントを取り込まないように指定します。これはデフォルト値です。
enableDynamicSQLReplacement
代替の SQL ステートメントを pureQueryXML ファイルに追加したものの、それらのステートメントをバインドしていない場合、このオプションは、これらのステートメントを実行するかどうかを指定します。

pureQueryXML ファイル内の SQL ステートメントをキャプチャーした後、1 つ以上のステートメントがアプリケーションの要求どおりに機能していないと分かる場合があります。ところが、その事実を発見したのが開発サイクルの後期であったために、アプリケーションの修正や再展開が不可能な場合があります。ただし、十分に機能していない各 SQL ステートメント用の代替ステートメントを追加することで pureQueryXML ファイルを編集することができます。アプリケーションの実行時、pureQuery は、最初にキャプチャーした SQL ステートメントでなく代替 SQL ステートメントを使用します。

代替 SQL ステートメントをバインドするかどうかを選択できます。バインドはしていないものの、それらを使用する必要がある場合は、アプリケーションの実行時に enableDynamicSQLReplacement プロパティーを TRUE に設定する必要があります。

TRUE
代替 SQL ステートメントを実行するように指定します。これらはバインドされていないため、pureQuery により動的に実行されます。
FALSE
代替 SQL ステートメントを実行しないように指定します。pureQuery は、代替 SQL ステートメントでなく、アプリケーションで使用している pureQueryXML ファイル内にある元の SQL ステートメントを実行します。
重要:SQL Outline の実行時プロパティーの設定方法」に示されているように、このプロパティーを pureQuery 用にグローバルに設定する必要があります。
executionMode
pureQueryXml オプションで指定した pureQueryXML ファイルにある SQL ステートメントを静的に実行するかどうかを指定します。
STATIC
各 SQL ステートメントの実行準備が整うと、pureQuery は、一致する SQL ステートメントが pureQueryXML ファイル内にリストされているかどうかを判断します。 一致するステートメントが見つかると、そのステートメントは静的に実行されます。
pureQuery が一致する SQL ステートメントを pureQueryXML ファイルの中から見つけられなかった場合、または一致するステートメントは見つかったもののそれらがバインドされていない場合、pureQuery の動作は、allowDynamicSQL オプションの値によって異なります。 そのオプションの説明を参照してください。
DYNAMIC
現行の Connection オブジェクトに対して発行されるすべての SQL ステートメントは、IBM DB2 Driver for JDBC and SQLJ により動的に実行されます。captureMode の値がが OFF の場合は、pureQueryXml オプションで pureQueryXML ファイルを指定する必要はありません。
DYNAMIC がデフォルト値です。
Location-dependent string
構文図を読む構文図をスキップする
>>-+-db2.jcc.pdqProperties----------------------------------------------------------------+-><
   +-java -Ddb2.jcc.pdqProperties---------------------------------------------------------+   
   +-jdbc--:--db2--:--subsystem--:--pdqProperties-----------------------------------------+   
   '-jdbc--:--db2--:--//--server--+---------+--/--database-or-subsystem--:--pdqProperties-'   
                                  '-:--port-'                                                 

db2.jcc.pdqProperties
DB2Jccconfiguration.properties ファイルで使用されます。プロパティーは、アプリケーション内の、IBM DB2 Driver for JDBC and SQLJ を使用するすべての Connection オブジェクトに適用されます。
java -Ddb2.jcc.pdqProperties
アプリケーションを開始するときに、Java 仮想マシンにプロパティーを受け渡すために使用されます。プロパティーは、アプリケーション内の、IBM DB2 Driver for JDBC and SQLJ を使用するすべての Connection オブジェクトに適用されます。
jdbc:db2:subsystem:pdqProperties
IBM DB2 Driver for JDBC and SQLJ を使用する Connection オブジェクトのプロパティーを、タイプ 2 URL で受け渡すために使用します。プロパティーは特定の接続だけに適用されます。
URL を二重引用符で囲みます。
jdbc:db2://server:port/database-or-subsystem:pdqProperties
IBM DB2 Driver for JDBC and SQLJ を使用する Connection オブジェクトのプロパティーを、タイプ 4 URL で受け渡すために使用します。プロパティーは特定の接続だけに適用されます。
URL を二重引用符で囲みます。
pureQueryXml
SQL ステートメントの取り込みのプロセスで作成されるファイル、または executionModeSTATIC に設定してアプリケーションを実行する場合に読み取られるファイルの完全修飾パスまたは相対パスを指定します。ファイルの拡張子は .pdqxml または .xml のいずれかでなければなりません。

SQL ステートメントを取り込む場合、指定するディレクトリーは存在するものでなければなりません。そのディレクトリーにファイルを作成する許可を持っている必要があります。

executionMode を STATIC に設定してアプリケーションを実行する場合、指定するディレクトリーおよびファイルは存在するものでなければなりません。指定するディレクトリーにあるファイルの読み取り許可を持っている必要があります。

デフォルト値はありません。captureModeON であるか、executionModeSTATIC である場合には、値を指定する必要があります。

ファイルの名前は、ご使用のオペレーティング・システムにおけるファイル名の規則に従う必要があります。

関連タスク
SQL ステートメントを静的に実行するための JDBC アプリケーションの実行
関連資料
SQL Outline の実行時プロパティーの設定方法

フィードバック