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

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

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

キャプチャーされバインドされた SQL を静的に実行する場合の設定

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

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

この表には、デフォルト値のまま残すことが可能なプロパティーは示されていません。

このようなプロパティーの設定方法と設定場所については、SQL Outline の実行時プロパティーの設定方法を参照してください。

アンバインドされたか、またはキャプチャーされていないステートメントの動的な実行中に、キャプチャーされバインドされた SQL ステートメントを静的に実行する場合の設定

以下のように設定してアプリケーションを実行した場合、pureQuery は、そのステートメントを再実行する必要のある接続用の pureQueryXML ファイル内にその SQL ステートメントがあるかどうかを検査します。続いて、pureQuery は、以下のいずれかのアクションを実行します。
  • ステートメントが pureQueryXML ファイルにあり、DB2 パッケージでバインドされている場合、pureQuery はステートメントを静的に実行します。
  • ステートメントが pureQueryXML ファイルにあるがバインドされていない場合、pureQuery はステートメントを動的に実行します。
  • ステートメントが pureQueryXML ファイルにない場合、pureQuery はステートメントを動的に実行します。
表 2. 必要な設定
Property Setting
executionMode STATIC
pureQueryXml file-name.pdqxml or file-name.xml

この表には、デフォルト値のまま残すことが可能なプロパティーは示されていません。

このようなプロパティーの設定方法と設定場所については、SQL Outline の実行時プロパティーの設定方法を参照してください。

アンバインドされたがキャプチャーされているステートメントの動的な実行中に、キャプチャーされバインドされたステートメントを静的に実行する場合の設定

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

この表には、デフォルト値のまま残すことが可能なプロパティーは示されていません。

このようなプロパティーの設定方法と設定場所については、SQL Outline の実行時プロパティーの設定方法を参照してください。

アンバインドされたか、またはキャプチャーされていないステートメントを動的に実行しキャプチャーされたステートメントを置換する処理の実行中に、キャプチャーされバインドされた SQL ステートメントを静的に実行する場合の設定

以下のように設定してアプリケーションを実行した場合、pureQuery は、そのステートメントを再実行する必要のある接続用の pureQueryXML ファイル内にその SQL ステートメントがあるかどうかを検査します。続いて、pureQuery は、以下のいずれかのアクションを実行します。
  • ステートメントが pureQueryXML ファイルにあり、DB2 パッケージでバインドされている場合、pureQuery はステートメントを静的に実行します。

    ステートメントが、自動生成されるキーを使用せず、対応する <processedSql> 要素に置換用 SQL ステートメントが含まれている場合、pureQueryは、置換用 SQL ステートメントを静的に実行します。

  • ステートメントが pureQueryXML ファイルにあるがバインドされておらず、自動生成されるキーを使用せず、対応する <processedSql> 要素に置換用 SQL ステートメントが含まれている場合、pureQuery は、置換用 SQL ステートメントを動的に実行します。
  • ステートメントが pureQueryXML ファイルにあるがバインドされておらず、置換用 SQL ステートメントが含まれた対応する <processedSql> 要素がない場合、pureQuery は、SQL ステートメントを動的に実行します。
  • ステートメントが pureQueryXML ファイルにない場合、pureQuery はステートメントを動的に実行します。
表 4. 必要な設定
Property Setting
executionMode STATIC
enableDynamicSQLReplacement TRUE
pureQueryXml file-name.pdqxml or file-name.xml

この表には、デフォルト値のまま残すことが可能なプロパティーは示されていません。

このようなプロパティーの設定方法と設定場所については、SQL Outline の実行時プロパティーの設定方法を参照してください。

アンバインドされたがキャプチャーされているステートメントを動的に実行しキャプチャーされたステートメントを置換する処理の実行中に、キャプチャーされバインドされた SQL ステートメントを静的に実行する場合の設定

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

この表には、デフォルト値のまま残すことが可能なプロパティーは示されていません。

このようなプロパティーの設定方法と設定場所については、SQL Outline の実行時プロパティーの設定方法を参照してください。

プロパティーの説明

allowDynamicSQL
pureQueryXML ファイルにキャプチャーされていない SQL ステートメントを動的に実行することを、アプリケーションに許可するかどうかを指定します。このプロパティーは、executionModeSTATIC である場合にのみ適用されます。
TRUE
アプリケーションは、キャプチャーされていない SQL ステートメントを動的に実行します。また、アプリケーションは、pureQueryXML ファイルにキャプチャーされているがバインドされていない SQL ステートメントも動的に実行します。

これはデフォルト値です。

アプリケーションが SQLExceptions をスローするようにし、まだキャプチャーもバインドもしていない SQL ステートメントを検出しやすくするには、この値を allowDynamicSQL に設定しないこともできます。

FALSE
pureQuery JDBC Client Optimizer は、以下のいずれかのメソッドが、キャプチャーされていない SQL ステートメントまたはバインドされていない SQL ステートメントを使用する場合に例外をスローします。
  • Connection.prepareStatement()
  • Statement.addBatch()
  • Statement.execute()
  • Statement.executeQuery()
  • Statement.executeUpdate()
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 がデフォルト値です。
pureQueryXml
SQL ステートメントの取り込みのプロセスで作成されるファイル、または executionModeSTATIC に設定してアプリケーションを実行する場合に読み取られるファイルの完全修飾パスまたは相対パスを指定します。ファイルの拡張子は .pdqxml または .xml のいずれかでなければなりません。

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

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

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

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

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

フィードバック