SQL ステートメントの再バインドが必要な Configure のオプション

一般に、Configure ユーティリティーのオプションは、-cleanConfigure TURE オプションを除いて、pureQueryXML ファイルに含まれているすべての SQL ステートメントまたはすべての名前付きステートメント・セットに影響するわけではありません。 Configure ユーティリティーでステートメント・セットを変更する場合、そのステートメント・セットに含まれている SQL ステートメントについては、一般に、DB2® データベースでそれらのステートメントを静的に実行する前に再バインドが必要になります。
Configure ユーティリティーのほとんどのオプションについては、そのオプションでステートメント・セットが変更されるかどうかは、名前付きステートメント・セットの configureStatus 属性の値によって決まります。
  • configureStatus 属性の値が AUTO の場合、ステートメント・セットが変更されるのはオプションで変更が必要な場合に限られます。 ステートメント・セットが変更されなければ、そのセットに含まれている SQL ステートメントの再バインドは必要ありません。
  • configureStatus 属性の値が FINAL であれば、ステートメント・セットは変更されません。
  • configureStatus 属性の値が REQUIRED の場合は、ステートメント・セットが変更されます。 そのセットに含まれている SQL ステートメントの再バインドが必要です。

Configure ユーティリティーの -setPreStatusOfAllPkgs オプションは、configureStatus 属性の値に影響を与えます。 このオプションを指定すると、Configure ユーティリティーは、このオプションの影響を考慮に入れた上で SQL ステートメントとステートメント・セットを処理します。 この処理は、Configure の操作を開始した時点での configureStatus 属性の値に基づくわけではありません。

ステートメント・セットに含まれている SQL ステートメントのバインドまたは再バインドを実行するには、pureQueryXML ファイルを指定して StaticBinder ユーティリティーを実行します。 バインド操作を実行するときには、StaticBinder の -differenceOnly TRUE オプションを指定できます。 このオプションを指定すると、再バインドが必要なステートメント・セット内のステートメントだけにバインド操作の対象が限定されます。

注: StaticBinder ユーティリティーは、名前付きステートメント・セットに含まれている SQL ステートメントについてのみ、パッケージを作成し、パッケージをバインドしようとします。 名前のないステートメント・セットに入っている SQL ステートメントについては、それらのステートメントを名前付きステートメント・セットに配置するために、Configure ユーティリティーを実行する必要があります。

-cleanConfigure オプションの値が FALSE になっているか、そのオプションが指定されていない場合に、名前付きステートメント・セットを変更する Configure ユーティリティーのオプションを以下の表にまとめます。 -cleanConfigure オプションの値を TRUE に設定して Configure ユーティリティーを実行すると、すべてのステートメント・セットが変更されます。 名前のないステートメント・セットに含まれている SQL ステートメントについては、Configure ユーティリティーのすべてのオプションがすべてのステートメントに適用されます。

表 1. ステートメント・セットを変更し、SQL ステートメントの再バインドが必要になる Configure ユーティリティーのオプション.
オプション 変更される名前付きステートメント・セット
-allowStaticRowsetCursors configureStatus 属性の値が REQUIRED に設定されているステートメント・セット。
-collection configureStatus 属性の値が REQUIRED に設定されているステートメント・セット。
-forceSingleBindIsolation configureStatus 属性の値が REQUIRED に設定されているステートメント・セット。
-groupSQLBySpecialRegisters configureStatus 属性の値が REQUIRED または AUTO に設定されているステートメント・セット。
-groupSQLByStrings 名前付きステートメント・セットは変更されません。 名前のないステートメント・セットだけが変更されます。
-markDDLForBind configureStatus 属性の値が REQUIRED に設定されているステートメント・セット。
-maxMissingSections configureStatus 属性の値が REQUIRED または AUTO に設定されているステートメント・セット。
-pkgVersion configureStatus 属性の値が REQUIRED または AUTO に設定されているステートメント・セット。
-removeSQLInactiveForDays configureStatus 属性の値が REQUIRED または AUTO に設定されているステートメント・セット。
-removeInvalidSQL configureStatus 属性の値が REQUIRED または AUTO に設定されているステートメント・セット。
-replaceLocations configureStatus 属性の値が REQUIRED または AUTO に設定されているステートメント・セット。
-replaceSchemas configureStatus 属性の値が REQUIRED または AUTO に設定されているステートメント・セット。
-restoreInvalidSQLForce すべての名前付きステートメント・セット。
-rootPkgName 名前付きステートメント・セットは変更されません。 名前のないステートメント・セットだけが変更されます。
-setPostStatusOfAllPkgs すべての名前付きステートメント・セット。
-setPreStatusOfAllPkgs すべての名前付きステートメント・セット。
-sqlLimit 名前付きステートメント・セットは変更されません。 名前のないステートメント・セットだけが変更されます。

Configure ユーティリティーには、オプションが関連していない操作もあります。 つまり、pureQueryXML ファイルを管理して、その妥当性を確保するための操作です。

configureStatus 属性の値が FINAL になっている名前付きステートメント・セット以外では、以下のいずれかの変更が発生する可能性があります。 それらの変更が発生した場合は、影響を受けるパッケージの再バインドが必要になります。

注: セクション番号が順番どおりになっていなかったり、SQL ステートメントが間違ったステートメント・セットに入っていたりすると、StaticBinder ユーティリティーがバインド処理で pureQueryXML ファイルをそのまま使用することができなくなります。 configureStatus 属性の値が FINAL になっていて、これらの変更のいずれかが該当すると Configure ユーティリティーが判断した場合は、必要に応じて構成操作が終了するか、問題に関する情報がログに書き込まれます。

フィードバック