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 ステートメントを実行します。
- 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 ステートメントの取り込みのプロセスで作成されるファイル、または executionMode を STATIC に設定してアプリケーションを実行する場合に読み取られるファイルの完全修飾パスまたは相対パスを指定します。ファイルの拡張子は .pdqxml または .xml のいずれかでなければなりません。
SQL ステートメントを取り込む場合、指定するディレクトリーは存在するものでなければなりません。そのディレクトリーにファイルを作成する許可を持っている必要があります。
executionMode を STATIC に設定してアプリケーションを実行する場合、指定するディレクトリーおよびファイルは存在するものでなければなりません。指定するディレクトリーにあるファイルの読み取り許可を持っている必要があります。
デフォルト値はありません。captureMode が ON であるか、executionMode が STATIC である場合には、値を指定する必要があります。
ファイルの名前は、ご使用のオペレーティング・システムにおけるファイル名の規則に従う必要があります。