-groupSQLBySpecialRegisters オプションを指定すると、Configure ユーティリティーは、SQL ステートメントのキャプチャー時に記録された特殊レジスター情報に基づいて pureQueryXML ファイル内の SQL ステートメントをグループ化し、ステートメント・セットにします。 記録された特殊レジスター設定値は、SQL ステートメントの動作に影響する可能性がある設定値です。
-optionsFileForBind を指定すると、Configure ユーティリティーは StaticBinder オプション・ファイルを生成し、SQL ステートメントのキャプチャー時に記録された特殊レジスター設定値に基づくステートメント・セットに対してバインド・オプション・セットを生成しようとします。 ステートメント・セット内のステートメントが単一の特殊レジスター値セットに従ってグループ化されている場合、Configure ユーティリティーは単一のバインド・オプション・セットを生成します。 ステートメント・セットが複数の特殊レジスター値セットに基づいてグループ化されている場合、このユーティリティーは、各特殊レジスター・セットのバインド・オプション・セットが含まれたコメントを作成します。 このユーティリティーはまた、pureQueryXML ファイル内のステートメント・セット、SQL ステートメント、および特殊レジスター情報に関する情報および警告が含まれたコメントも追加します。
バインド・オプションは、パッケージを DB2 データベースにバインドして、SQL ステートメントを静的に実行する場合に必要になることがあります。 SQL ステートメントを静的に実行する際に、動的に実行する場合と同様の動作をさせるためにバインド・オプションが必要になることがあります。
生成されたバインド・オプションを StaticBinder ユーティリティーとともに使用する前に、それらのバインド・オプションを確認してください。 必要に応じて、静的に実行する際に SQL ステートメントが正しい動作をするように、ご使用の環境に合わせてバインド・オプションを変更してください。
場合により、ステートメント・セットに対してバインド・オプション・セットを指定できないことがあります。 StaticBinder ユーティリティーによるバインド操作を実行しないように指定することができます。 pureQueryXML ファイルで、ステートメント・セットの XML 属性 isBindable の値を false に変更し、再度 pureQueryXML ファイルを構成します。 isBindable 属性およびその変更方法については、pureQueryXML ファイルの XML 属性 isBindable を参照してください。Configure ユーティリティーによって生成されるファイルは、pureQuery StaticBinder ユーティリティー・オプション・ファイル形式です。 Configure ユーティリティーによって生成されるオプション・ファイルは、コメント、defaultOptions 項目、およびバインディング・ステートメント・セットの項目から構成されています。
コメントには、警告や情報のほか、バインド・オプション・セットも含まれていることがあります。 コメント内の情報については、Configure ユーティリティーによって生成されるコメントを参照してください。
defaultOptions =
Configure ユーティリティーが defaultOptions 項目にバインド・オプションを追加するのは、-groupSQLBySpecialRegisters が指定されておらず、どのステートメント・セットも特殊レジスター情報に基づいてグループ化されなかった場合のみです。
Configure ユーティリティーはバインド・オプションを生成するほか、追加情報が記載されたコメントを追加することがあります。 接続 URL や分離レベルなど、他の項目オプションを追加できます。 defaultOptions 項目については、このトピックの最後にある『クライアント最適化のための StaticBinder ユーティリティーのオプション・ファイル内のデフォルト・オプションに関する構文』へのリンクを参照してください。
defaultOptions = -bindOptions "QUALIFIER(SCHM4) FUNCPATH(SYSIBM,SYSFUN,SYSPROC,SYSADM) ROUNDING(HALFEVEN) DEC(15)" # WARNING: [specialRegValueId(C:¥myDir¥capture.pdqxml:4) minimumDivideScale(8) SQLID(ADMF003)]
defaultOptions = -bindOptions "QUALIFIER(SCHM4) FUNCPATH(SYSIBM,SYSFUN,SYSPROC,SYSADM) ROUNDING(HALFEVEN) DEC(15)"
# WARNING: [specialRegValueId(C:¥myDir¥capture.pdqxml:4) minimumDivideScale(8) SQLID(ADMF003)]
defaultOptions = # WARNING: SQLGroupedBySpecialRegisters(NOT_GROUPED)
以下の形式は、ステートメント・セットのバインド・オプションを示します。
pureQueryXML-file:base-package-name=bind-options
Configure ユーティリティーによって生成される項目には、ステートメント・セット情報およびバインド・オプションのみが含まれています。 他のオプションを追加できます。 この項目には、ステートメント・セットに関する追加情報および警告が記載されたコメントを含めることができます。
ステートメント・セットをバインドするための項目については、このトピックの最後にある『クライアント最適化のための StaticBinder ユーティリティーのオプション・ファイル内のデフォルト・オプションに関する構文』へのリンクを参照してください。
ステートメント・セットをバインドするための項目の例を、以下に示します。 この項目が複数行に分かれているのは、読みやすさを考慮したためです。
C:¥myDir¥capture.pdqxml:MYRPN1K = -bindOptions "QUALIFIER(SCHM9) FUNCPATH(SYSIBM,SYSFUN,SYSPROC,SYSADM) ROUNDING(HALFEVEN) DEC(15)" # WARNING: [specialRegValueId(10) minimumDivideScale(3) UNTRACKED_SET] INFO: configureStatus(FINAL) SQLGroupedByStrings(*NO_MATCH_FOUND*)
C:¥myDir¥capture.pdqxml:MYRPN1K = -bindOptions "QUALIFIER(SCHM9) FUNCPATH(SYSIBM,SYSFUN,SYSPROC,SYSADM) ROUNDING(HALFEVEN) DEC(15)"
# WARNING: [specialRegValueId(10) minimumDivideScale(3) UNTRACKED_SET] INFO: configureStatus(FINAL) SQLGroupedByStrings(*NO_MATCH_FOUND*)
MYRPN1K = -bindOptions "QUALIFIER(SCHM9) FUNCPATH(SYSIBM,SYSFUN,SYSPROC,SYSADM) ROUNDING(HALFEVEN) DEC(15)" # WARNING: [specialRegValueId(10) minimumDivideScale(3) UNTRACKED_SET] INFO: configureStatus(FINAL)
# WARNING: [specialRegValueId(10) minimumDivideScale(3) UNTRACKED_SET] INFO: configureStatus(FINAL)
INFO: configureStatus(FINAL)
Configure ユーティリティーがステートメント・セットに対するバインド・オプションを生成するのは、-groupSQLBySpecialRegisters が指定された場合、つまりステートメント・セットが特殊レジスター情報に基づいてグループ化された場合です。 Configure ユーティリティーがステートメント・セットに対するバインド・オプションを生成するのは、ステートメント・セットとともに単一の特殊レジスター値セットが記録された場合です。 ステートメント・セットに複数の特殊レジスター値セットが記録された場合、Configure ユーティリティーは、そのステートメント・セット内の SQL ステートメントとともに記録された特殊レジスター値セットに基づくバインド・オプションを含んだコメントを作成します。
# -bindOptions "QUALIFIER(SCHM13) FUNCPATH(SYSIBM,SYSFUN,SYSPROC,SYSADM) ROUNDING(HALFEVEN) DEC(15)" # WARNING: [specialRegValueId(3) UNTRACKED_SET]
このコメントのバインド・オプションは、pureQueryXML ファイル C:¥myDir¥capture.pdqxml 内にある、ID が 3 の特殊レジスター値セットに基づいています。 特殊レジスター値セット 3 に関して、pureQuery Runtime は、pureQuery がトラッキングする特殊レジスターに対する特殊レジスターの変更も検出しましたが、その値は記録されていません。
pureQuery Configure ユーティリティーによって作成される Staticbinder オプション・ファイルでは、ユーティリティーがバインド・オプションの後にコメントを追加します。 コメントには、情報メッセージまたは警告メッセージを表すトークンが含まれています。 WARNING: の後に続くトークンは、ステートメント・セット内の SQL ステートメントが静的実行時に正しく動作しない場合があることの理由です。 INFO: の後にあるトークンは情報です。
ステートメントに付加されたコメントに isBindable(FALSE) というトークンが含まれている場合は、INFO: ラベルのみが使用されます。 このトークンは、XML 属性 isBindable の値が false である場合にステートメント・セットに対してリストされます。 この値が false である場合、StaticBinder ユーティリティーはバインド処理の実行時にそのステートメント・セットを無視します。 ステートメント・セットがバインドされない場合、警告は不要です。
ステートメント・セットの XML 属性 isBindable の値が false である場合、Configure ユーティリティーで -bindOptions オプションおよび -configureWarning オプションは生成されません。 ただし、ステートメントのコメントにすべてのトークンが示されます。
isBindable 属性については、pureQueryXML ファイルの XML 属性 isBindable を参照してください。
以下のトークンによって、ステートメント・セットに関する情報が提供されます。
Configure ユーティリティー・オプション -setPostStatusOfAllPkgs を値 FINAL で指定した場合、このトークンは各ステートメント・セットに追加されません。 入力 pureQueryXML ファイル内のステートメント・セットに対する configureStatus 属性の値が FINAL である場合にのみ、このトークンがコメントとして追加されます。 -setPostStatusOfAllPkgs オプションは、構成後、すべてのステートメント・セットの configureStatus 属性を FINAL に設定します。
pureQueryXML ファイルを変更する場合は、configureStatus 属性の値を FINAL に設定したステートメント・セットに、変更による予想外の影響が出ないことを確認してください。
Configure ユーティリティーがステートメント・セットに関する警告トークンを生成した場合は、警告を無視することも、警告された内容の修正を試みることもできます。 データベースでバインドした既存のパッケージを保持する場合は、警告を無視します。 警告された内容の修正を試みる場合は、その特定の警告トークンに関する情報を参照してください。 警告された内容の修正を試みる場合、通常はステートメント・セットの構成が必要です。 ステートメント・セットを構成した後は、そのステートメント・セットと関連付けられたパッケージを StaticBinder ユーティリティーによって再バインドするまで、そのステートメント・セット内の SQL ステートメントを静的に実行することはできません。
Configure ユーティリティーは、ステートメント・セットのバインド・オプションに、値として INCREMENTAL_SPECIAL_REGISTER_VALUES_PRESENT を持つ -configureWarning オプションも追加します。
このトークンは、特殊レジスター設定値に基づいてグループ化されたステートメント・セットのコメント、または defaultOptions 行のコメント内に示されます。
Configure ユーティリティーを実行する際、-optionsFileForBind オプションを追加して新しいオプション・ファイルを生成します。 その新しいオプション・ファイルに警告がないことを確認してください。
SQL ステートメントを静的に実行する際、DB2 データベースでは、位置指定 update ステートメントが、そのステートメントに関連付けられた照会ステートメントと同じパッケージ内にあることが必要です。 関連付けられた照会が使用する特殊レジスター設定値と異なる設定値を使用して位置指定 update ステートメントを実行する必要がある場合は、両方の SQL ステートメントを動的に実行する必要があります。
ステートメント・セットに対するバインド・オプション・セットを作成できない場合は、StaticBinder ユーティリティーによる、セット内の SQL ステートメントのバインドを行わないように指定することができます。 isBindable 属性の値を false に設定してください。
Configure ユーティリティーは、ステートメント・セットのバインド・オプションに、値として SPECIAL_REGISTER_GROUPING_INCONSISTENT を持つ -configureWarning オプションも追加します。
バインド・オプション・セットを指定できない場合は、StaticBinder ユーティリティーによるバインド操作を実行しないように指定することができます。 ステートメント・セットの isBindable 属性の値を false に設定してください。
Configure ユーティリティーは、ステートメント・セットのバインド・オプションに、値として MULTIPLE_SPECIAL_REGISTER_VALUE_SETS を持つ -configureWarning オプションも追加します。
ステートメント・セットに対するバインド・オプション・セットを指定できない場合は、StaticBinder ユーティリティーによるバインド操作を実行しないように指定することができます。 ステートメント・セットの isBindable 属性の値を false に設定してください。
ステートメントをキャプチャーして、特殊レジスター情報を記録するには、現行バージョンの pureQuery Runtime を使用してアプリケーションを再度実行してください。
特殊レジスター情報を記録するには、特殊レジスター情報へのアクセスに必要な権限を持ったユーザーを指定してください。
ステートメント・セット内の SQL ステートメントを正しく実行するために特殊レジスター値が必要である場合は、オプション・ファイル内のステートメント・セットの行に、正しい設定値を生成するバインド・オプション・セットを指定します。
正しいバインド・オプションが分からない場合は、StaticBinder ユーティリティーによるバインド操作を実行しないように指定することができます。 ステートメント・セットの isBindable 属性の値を false に設定してください。
新しいオプション・ファイルを生成して、そのファイルから警告が消えているか確認するには、Configure ユーティリティー・オプション -optionsFileForBind を指定します。
SQL ステートメントをグループ化する方法については、Configure ユーティリティー・オプション -groupSQLByStrings を参照してください。
以下のトークンによって、ステートメント・セット内のステートメントの実行に使用された特殊レジスター値セットに関する情報が提供されます。 これらのトークンがコメントに示される場合、それらは大括弧で囲まれ、どのトークンがどの特殊レジスター値セットに対応するのかが示されます。
# WARNING: [specialRegValueId(10) minimumDivideScale(3)]特殊レジスター値セットの ID は 10 です。 この特殊レジスター値セットの場合、CURRENT PRECISION 特殊レジスターによって指定された除算の最小位取りは 3 です。
このコメントに警告のマークが付いているのは、一部のデータベースで、バインド・オプションによってパッケージの除算の最小位取り値を設定することができないためです。 pureQueryXML ファイルの特殊レジスター値セット情報については、pureQueryXML ファイルの特殊レジスター情報を参照してください。
このトークンは、特殊レジスター設定値に基づいてグループ化されたステートメント・セットのコメント、または defaultOptions 行のコメント内に示されます。
ステートメント・セット内のステートメントに、データベースのデフォルトの設定値に設定された除算関数の除算の最小位取りで正しく実行されないものがあるか判別します。
静的実行時に SQL ステートメントが正しく実行されない場合は、StaticBinder ユーティリティーによる、セット内の SQL ステートメントのバインドを行わないように指定することができます。 isBindable 属性の値を false に設定してください。
このトークンは、特殊レジスター設定値に基づいてグループ化されたステートメント・セットのコメント、または defaultOptions 行のコメント内に示されます。
Configure ユーティリティーは、ステートメント・セットのバインド・オプションに、値として SPECIAL_REGISTER_VALUE_SET_MISSING を持つ -configureWarning オプションも追加します。
この警告が示される理由の 1 つは、特殊レジスター値セットの定義がファイルから削除されていることです。
定義を復旧できない場合は、静的実行時に SQL ステートメントが正しい動作を行わない可能性があります。 StaticBinder ユーティリティーによる、セット内の SQL ステートメントのバインドを行わないように指定することができます。 セットの isBindable 属性の値を false に設定してください。
このトークンは、特殊レジスター設定値に基づいてグループ化されたステートメント・セットのコメント、または defaultOptions 行のコメント内に示されます。
defaultOptions 項目にこのトークンがリストされる場合、Configure ユーティリティーは ID の前に pureQueryXML ファイルの名前を追加します。 このファイルには、指定された特殊レジスター値セットが含まれています。
このトークンは、特殊レジスター設定値に基づいてグループ化されたステートメント・セットのコメント、または defaultOptions 行のコメント内に示されます。
このトークンが示されるのは、トークン SQLGroupedBySpecialRegisters(INCONSISTENT_SRINFO) も示される場合のみです。 SQL ステートメントの複数の異なるステートメント・セットへのグループ化については、トークン SQLGroupedBySpecialRegisters(INCONSISTENT_SRINFO) に関する情報を参照してください。
このステートメント・セット内の SQL ステートメントを特殊レジスター設定値に基づいてグループ化した場合、一部のステートメントは、トークン SQLGroupedBySpecialRegisters(NO_SRINFO) が示されたセット内にグループ化されます。
このトークンは、特殊レジスター設定値に基づいてグループ化されたステートメント・セットのコメント、または defaultOptions 行のコメント内に示されます。
場合によっては、一部の動作について、OWNER バインド・オプションを使用することによって、CURRENT SQLID 特殊レジスターを使用した場合と同じ結果を得ることができます。
ステートメント・セットに対するバインド・オプション・セットを作成できない場合は、StaticBinder ユーティリティーによる、セット内の SQL ステートメントのバインドを行わないように指定することができます。 セットの isBindable 属性の値を false に設定してください。
このトークンは、特殊レジスター設定値に基づいてグループ化されたステートメント・セットのコメント、または defaultOptions 行のコメント内に示されます。
specialRegisters の値には、1 つ以上のキーワードが入ります。 複数のキーワードが認識されない場合、Configure ユーティリティーは各キーワードをコンマで区切ります。
pureQueryXML ファイル内の SQL ステートメントが、Configure ユーティリティーのバージョンより前のバージョンの pureQuery Runtime でキャプチャーされた場合は、認識されない特殊レジスターが記録される可能性があります。 認識されない特殊レジスターは、ファイル内の特殊レジスター情報が手動により誤った内容に編集された場合に作成される可能性があります。
このトークンが示された場合は、SQL ステートメントを pureQueryXML ファイルにキャプチャーするものと同じリリースのバージョン、またはそれ以降のバージョンの Configure ユーティリティーを使用してください。 pureQueryXML ファイルが手動により誤った内容に編集された場合は、それらの編集を取り消す必要があります。
このトークンは、特殊レジスター設定値に基づいてグループ化されたステートメント・セットのコメント、または defaultOptions 行のコメント内に示されます。
ステートメント・セットに対するバインド・オプション・セットを作成できない場合は、StaticBinder ユーティリティーによる、セット内の SQL ステートメントのバインドを行わないように指定することができます。 セットの isBindable 属性の値を false に設定してください。