Configure ユーティリティー

pureQuery Configure ユーティリティーを使用して、最終的に pureQueryXML ファイル内の SQL ステートメントに対して作成する DB2® パッケージのいくつかの特性を設定できます。 設定可能な特性には、DB2 パッケージのコレクション、バージョン、ルート・パッケージ名などがあります。 1 つのパッケージにグループ化される SQL ステートメントの最大数を設定することもできます。 入力 pureQueryXML ファイルで XML スキーマの妥当性検査を実行することもできます。

設定される特性は、pureQueryXML ファイルに追加されます。pureQueryXML ファイル内にある SQL ステートメントを DB2 パッケージにバインドするために StaticBinder ユーティリティーを実行する場合、StaticBinder ユーティリティーはこれらの特性を読み取ります。pureQuery Runtime は、SQL ステートメントを静的に実行する際に、このファイルにあるコレクション ID、パッケージ ID、バージョン ID、セクション番号などの情報も使用します。

注: 以下の方法で作成された pureQueryXML ファイルを、-pureQueryXml オプションで指定される pureQueryXML ファイルにすることはできません。
  • outputPureQueryXmlpureQueryXml の両方の pureQuery Runtime プロパティーを指定して、追加の SQL ステートメントをキャプチャーするために作成されたファイル。 これらのプロパティーが両方指定されている場合、outputPureQueryXml プロパティーにより指定された pureQueryXML ファイルには、pureQueryXml プロパティーにより指定された pureQueryXML ファイルには出現しない、キャプチャーされた SQL ステートメントが含まれます。 構成を行う前に、複数のファイルをマージする必要があります。pureQueryXml プロパティーにより指定されたファイルを基本ファイルとして使用してください。
  • ファイルにリポジトリーから抽出された、キャプチャーされた SQL データが含まれており、アクティブなランタイム・グループ・バージョンに pureQueryXML データが含まれていた場合。構成を行う前に、ランタイム・グループ・バージョンから pureQueryXML データを抽出し、複数のファイルをマージする必要があります。pureQueryXML データを含むファイルを基本ファイルとして使用してください。

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

図で使用される規則を理解するには、構文図の読み方を参照してください。

ユーティリティー・オプション・ファイルの構成

構成ユーティリティー・オプション・ファイルは、pureQuery 構成ユーティリティーで処理する単一または複数の pureQueryXML ファイル、および pureQueryXML ファイルを処理する方法を構成ユーティリティーに指示するオプションをリストします。 オプション・ファイルにリストされているすべての pureQueryXML ファイルに適用される 一部の Configure ユーティリティー・オプションをデフォルト・オプションとして設定できます。 また、デフォルト・オプションをオーバーライドして個別の pureQueryXML ファイルに固有である他のオプションを設定できるように、pureQueryXML ファイルに オプションを設定することもできます。

Configure ユーティリティーを実行するコマンドでは、-optionsFile オプションで使用するファイルを指定することができます。

例えば、pureQuery Configure ユーティリティーの単純なオプション・ファイルは以下のようになります。
defaultOptions = -collection COLL01
C:¥capture_files¥capture_sales.pdqxml = -collection NULLID -rootPkgName SALES
C:¥capture_files¥capture_employee.pdqxml = -collection COLL02 -rootPkgName EMP
C:¥capture_files¥capture_orders.pdqxml = -rootPkgName ORDERS
この例の defaultOptions から始まる行では、 最終的に作成およびバインドされる DB2 パッケージのコレクション ID が指定されています。 次の 2 つの行はデフォルトのコレクション ID をオーバーライドします。3 つの pureQueryXML ファイルすべてで、必須の -rootPkgName オプションによって、DB2 パッケージのルート・パッケージ名が指定されています。
また、オプション・ファイルにはコメントを含めることもできます。その場合は、各コメント行を # 記号で開始します。 オプションのいずれかの値でこの記号を使用する必要がある場合には、以下に示すように、値を二重引用符で囲みます。
-pkgVersion "ver#1"
コマンド行から構成ユーティリティーを実行して、 オプション・ファイルを使用した場合には、pureQuery は以下の順序の優先順位でオプションを認識します。
  1. コマンド行のオプション
  2. 指定されたオプション・ファイル内の個々の pureQueryXML ファイルのオプション
  3. 指定されたオプション・ファイルのデフォルト・オプション

オプション・ファイルを使用せずに Configure ユーティリティーを実行するコマンドの構文

pureQueryXML ファイルが 1 つしかない場合は、pureQueryXML ファイルの名前と、DB2 パッケージ用のオプションを指定するために、このコマンドを使用することを選択できます。

構文図を読む構文図をスキップする
                                     (1)   
>>-java--com.ibm.pdq.tools.Configure---------------------------->

>--+-----------------------------------+------------------------>
   |               .-NULLID----------. |   
   '- -collection--+-collection-name-+-'   

>--+-----------------------------+------------------------------>
   '- -markDDLForBind--+-TRUE--+-'   
                       '-FALSE-'     

>--+--------------------------------+--------------------------->
   '- -pkgVersion-- -+-AUTO-------+-'   
                     '-version-ID-'     

>-- -rootPkgName--package-name-stem----------------------------->

>--+--------------------------------------------------------+--->
   '- -allowStaticRowsetCursors--+-READ_ONLY--------------+-'   
                                 +-READ_ONLY_SCROLLABLE---+     
                                 +-READ_ONLY_FORWARD_ONLY-+     
                                 '-NEVER------------------'     

>--+-----------------------------+------------------------------>
   |                   .-FALSE-. |   
   '- -cleanConfigure--+-TRUE--+-'   

>--+---------------------------------------+-------------------->
   |                             .-FALSE-. |   
   '- -forceSingleBindIsolation--+-TRUE--+-'   

>--+-----------------------------------------+------------------>
   |                               .-FALSE-. |   
   '- -groupSQLBySpecialRegisters--+-TRUE--+-'   

>--+-------------------------------------------+---------------->
   |                      .------------------. |   
   |                      |    .-|------.    | |   
   |                      V    V        |    | |   
   '- -groupSQLByStrings----(----string-+--)-+-'   

>--+----------------------------------+------------------------->
   |                       .- -1----. |   
   '- -maxMissingSections--+-number-+-'   

>--+--------------------------------------+--------------------->
   '- -removeSQLInactiveForDays----days---'   

>--+-------------------------------+---------------------------->
   |                     .-FALSE-. |   
   '- -removeInvalidSQL--+-TRUE--+-'   

                                           (2)   
>--+-------------------------------------+---------------------->
   |                           .-FALSE-. |       
   '- -restoreInvalidSQLForce--+-TRUE--+-'       

>--+----------------------------------------------------------------+-->
   |                        .----------------------------------.    |   
   |                        V                                  |    |   
   '- -replaceLocations--"----(--original_name-->--new_name--)-+--"-'   

>--+--------------------------------------------------------------+-->
   |                      .----------------------------------.    |   
   |                      V                                  |    |   
   '- -replaceSchemas--"----(--original_name-->--new_name--)-+--"-'   

>--+--------------------------+--+------------------------+----->
   |                .-FALSE-. |  |             .-100----. |   
   '- -showDetails--+-TRUE--+-'  '- -sqlLimit--+-number-+-'   

>--+---------------------------------------+-------------------->
   '- -setPreStatusOfAllPkgs--+-AUTO-----+-'   
                              +-FINAL----+     
                              '-REQUIRED-'     

>--+---------------------------------+-------------------------->
   '- -setPostStatusOfAllPkgs--FINAL-'   

>--+-------------------------------------------------------------+-->
   '- -optionsFileForBind--+-bind-options-file-----------------+-'   
                           '-DEFAULT_IN_PUREQUERYXML_DIRECTORY-'     

>--+--------------------------+--+-----------------------+------>
   |                .-FALSE-. |  |                   (3) |   
   '- -validateXml--+-TRUE--+-'  '-| Trace options |-----'   

>-- -pureQueryXml--pureQueryXML-file--+--------+---------------><
                                      '- -help-'   

注:
  1. オプションは任意の順序で指定できます。
  2. -replaceLocations オプション および -replaceSchemas オプションでは、JAR ファイル pdqsqlparser.jar がクラスパスに存在していなければなりません。 これらのオプションは、DB2 for z/OS® バージョン 10 および DB2 for Linux, UNIX, and Windows バージョン 9.8 でサポートされています。 サポートされていないデータベースが検出されると、警告が発行されます。
  3. 構文については、以下のオプションの説明を参照してください。

オプション・ファイルを使用して Configure ユーティリティーを実行するコマンドの構文

pureQueryXML ファイルが複数ある場合は、pureQueryXML ファイルの名前と、DB2 パッケージ用のオプションを指定するために、コマンドとオプション・ファイルを使用します。pureQueryXML ファイルが 1 つしかない場合でも、コマンドとオプション・ファイルは使用できます。

構文図を読む構文図をスキップする
>>-java--com.ibm.pdq.tools.Configure---------------------------->

>-- -optionsFile--file-name--+-----------------------+---------><
                             |                   (1) |   
                             '-| Trace options |-----'   

注:
  1. 構文については、以下のオプションの説明を参照してください。

Configure ユーティリティーのオプション・ファイルにデフォルト・オプションを指定する構文

この構文図は、オプション・ファイルにリストしたすべての pureQueryXML ファイルに対して設定できるデフォルト・オプションを示しています。

構文図を読む構文図をスキップする
                     (1)   
>>-defaultOptions--=-------------------------------------------->

>--+-----------------------------------+------------------------>
   |               .-NULLID----------. |   
   '- -collection--+-collection-name-+-'   

>--+-----------------------------+------------------------------>
   '- -markDDLForBind--+-TRUE--+-'   
                       '-FALSE-'     

>--+--------------------------------+--------------------------->
   '- -pkgVersion-- -+-AUTO-------+-'   
                     '-version-ID-'     

>--+--------------------------------------------------------+--->
   '- -allowStaticRowsetCursors--+-READ_ONLY--------------+-'   
                                 +-READ_ONLY_SCROLLABLE---+     
                                 +-READ_ONLY_FORWARD_ONLY-+     
                                 '-NEVER------------------'     

>--+---------------------------------------+-------------------->
   |                             .-FALSE-. |   
   '- -forceSingleBindIsolation--+-TRUE--+-'   

>--+-----------------------------------------+------------------>
   |                               .-FALSE-. |   
   '- -groupSQLBySpecialRegisters--+-TRUE--+-'   

>--+-------------------------------------------+---------------->
   |                      .------------------. |   
   |                      |    .-|------.    | |   
   |                      V    V        |    | |   
   '- -groupSQLByStrings----(----string-+--)-+-'   

                                        (2)   
>--+----------------------------------+------------------------->
   |                       .- -1----. |       
   '- -maxMissingSections--+-number-+-'       

>--+----------------------------------------------------------------+-->
   |                        .----------------------------------.    |   
   |                        V                                  |    |   
   '- -replaceLocations--"----(--original_name-->--new_name--)-+--"-'   

>--+--------------------------------------------------------------+-->
   |                      .----------------------------------.    |   
   |                      V                                  |    |   
   '- -replaceSchemas--"----(--original_name-->--new_name--)-+--"-'   

>--+--------------------------------------+--------------------->
   '- -removeSQLInactiveForDays----days---'   

>--+-------------------------------+---------------------------->
   |                     .-FALSE-. |   
   '- -removeInvalidSQL--+-TRUE--+-'   

>--+-------------------------------------+---------------------->
   |                           .-FALSE-. |   
   '- -restoreInvalidSQLForce--+-TRUE--+-'   

>--+--------------------------+--+------------------------+----->
   |                .-FALSE-. |  |             .-100----. |   
   '- -showDetails--+-TRUE--+-'  '- -sqlLimit--+-number-+-'   

>--+---------------------------------------+-------------------->
   '- -setPreStatusOfAllPkgs--+-AUTO-----+-'   
                              +-FINAL----+     
                              '-REQUIRED-'     

>--+---------------------------------+-------------------------->
   '- -setPostStatusOfAllPkgs--FINAL-'   

>--+-------------------------------------------------------------+-->
   '- -optionsFileForBind--+-bind-options-file-----------------+-'   
                           '-DEFAULT_IN_PUREQUERYXML_DIRECTORY-'     

>--+--------------------------+--+-----------------------+-----><
   |                .-FALSE-. |  |                   (3) |   
   '- -validateXml--+-TRUE--+-'  '-| Trace options |-----'   

注:
  1. オプションは任意の順序で指定できます。
  2. -replaceLocations オプション および -replaceSchemas オプションでは、JAR ファイル pdqsqlparser.jar がクラスパスに存在していなければなりません。 これらのオプションは、DB2 for z/OS バージョン 10 および DB2 for Linux, UNIX, and Windows バージョン 9.8 でサポートされています。 サポートされていないデータベースが検出されると、警告が発行されます。
  3. 構文については、以下のオプションの説明を参照してください。

Configure ユーティリティーのオプション・ファイル内の個々の pureQueryXML ファイルに対してオプションを指定する構文

この構文図は、オプション・ファイルにリストした各 pureQueryXML ファイルに対して設定できるオプションを示しています。

構文図を読む構文図をスキップする
                        (1)   
>>-pureQueryXML-file--=----------------------------------------->

>--+-----------------------------------+------------------------>
   |               .-NULLID----------. |   
   '- -collection--+-collection-name-+-'   

>--+-----------------------------+------------------------------>
   '- -markDDLForBind--+-TRUE--+-'   
                       '-FALSE-'     

>--+--------------------------------+--------------------------->
   '- -pkgVersion-- -+-AUTO-------+-'   
                     '-version-ID-'     

>-- -rootPkgName--package-name-stem----------------------------->

>--+--------------------------------------------------------+--->
   '- -allowStaticRowsetCursors--+-READ_ONLY--------------+-'   
                                 +-READ_ONLY_SCROLLABLE---+     
                                 +-READ_ONLY_FORWARD_ONLY-+     
                                 '-NEVER------------------'     

>--+-----------------------------+------------------------------>
   |                   .-FALSE-. |   
   '- -cleanConfigure--+-TRUE--+-'   

>--+---------------------------------------+-------------------->
   |                             .-FALSE-. |   
   '- -forceSingleBindIsolation--+-TRUE--+-'   

>--+-----------------------------------------+------------------>
   |                               .-FALSE-. |   
   '- -groupSQLBySpecialRegisters--+-TRUE--+-'   

>--+-------------------------------------------+---------------->
   |                      .------------------. |   
   |                      |    .-|------.    | |   
   |                      V    V        |    | |   
   '- -groupSQLByStrings----(----string-+--)-+-'   

>--+----------------------------------+------------------------->
   |                       .- -1----. |   
   '- -maxMissingSections--+-number-+-'   

>--+--------------------------------------+--------------------->
   '- -removeSQLInactiveForDays----days---'   

>--+-------------------------------+---------------------------->
   |                     .-FALSE-. |   
   '- -removeInvalidSQL--+-TRUE--+-'   

                                           (2)   
>--+-------------------------------------+---------------------->
   |                           .-FALSE-. |       
   '- -restoreInvalidSQLForce--+-TRUE--+-'       

>--+----------------------------------------------------------------+-->
   |                        .----------------------------------.    |   
   |                        V                                  |    |   
   '- -replaceLocations--"----(--original_name-->--new_name--)-+--"-'   

>--+--------------------------------------------------------------+-->
   |                      .----------------------------------.    |   
   |                      V                                  |    |   
   '- -replaceSchemas--"----(--original_name-->--new_name--)-+--"-'   

>--+--------------------------+--+------------------------+----->
   |                .-FALSE-. |  |             .-100----. |   
   '- -showDetails--+-TRUE--+-'  '- -sqlLimit--+-number-+-'   

>--+---------------------------------------+-------------------->
   '- -setPreStatusOfAllPkgs--+-AUTO-----+-'   
                              +-FINAL----+     
                              '-REQUIRED-'     

>--+---------------------------------+-------------------------->
   '- -setPostStatusOfAllPkgs--FINAL-'   

>--+--------------------------+--------------------------------><
   |                .-FALSE-. |   
   '- -validateXml--+-TRUE--+-'   

注:
  1. オプションは任意の順序で指定できます。
  2. -replaceLocations オプション および -replaceSchemas オプションでは、JAR ファイル pdqsqlparser.jar がクラスパスに存在していなければなりません。 これらのオプションは、DB2 for z/OS バージョン 10 および DB2 for Linux, UNIX, and Windows バージョン 9.8 でサポートされています。 サポートされていないデータベースが検出されると、警告が発行されます。

オプションの説明

pureQueryXML-file = options
pureQueryXML ファイルの名前と、そのファイルのオプションを指定するには、オプション・ファイルでこの形式を使用します。 ファイル名はオプション・ファイル内で行の先頭に指定する必要があります。 ファイル名には、絶対パスまたは相対パスが含まれます。 ファイル名には、拡張子 .pdqxml または .xml が必要です。
この行で指定したオプションは、defaultOptions 行で指定したオプションをオーバーライドします。
-allowStaticRowsetCursors
このオプションは、取り込み時に行セット・カーソルを使用したステートメントと静的実行時に行セット・カーソルを使用したステートメントとの違いが存在するようにする場合に使用します。 これが発生する可能性があるいくつかの例を以下に示します。
  • 静的実行時に行セット・カーソルを使用するが、DB2 for z/OS 以外のデータベースを使用して取り込んだ場合。 例えば、DB2 for Linux, UNIX, and Windows を使用して取り込んだ場合が考えられます。
  • キャプチャー環境で行セット・カーソルを使用したが、静的実行時に行セット・カーソルを使用しない場合。
  • 静的実行時に行セット・カーソルを使用する場合。 DB2 for z/OS に対して取り込んだが、 DB2 for z/OS に対して新たに 静的実行を行う際に、取り込み時に使用したものとは異なるドライバー・タイプを使用する場合。 例えば、IBM® Data Server Driver for JDBC and SQLJ T4 ドライバーを使用して取り込んだが、IBM Data Server Driver for JDBC and SQLJ T2 ドライバーを使用して静的に実行する場合には、"-allowStaticRowsetCursors READ_ONLY" と指定できます。 同様に、IBM Data Server Driver for JDBC and SQLJ T2 ドライバーを使用して取り込んだが、 IBM Data Server Driver for JDBC and SQLJ T4 ドライバーを使用して静的に実行する場合には、 "-allowStaticRowsetCursors READ_ONLY_SCROLLABLE" と指定できます。
  • 静的実行時に行セット・カーソルを使用する場合。 キャプチャー・ファイルが 2.2 より古いバージョンの pureQuery を使用して作成されたため、ファイル内のステートメントはいずれも行セット・カーソルを使用するようにマークされません。

行セット・カーソルをサポートするのは DB2 for z/OS だけです。行セット・カーソルは、IBM Data Server Driver for JDBC and SQLJ のプロパティーで行セット・カーソルを使用するように指定されている場合にのみ使用されます。 異なるタイプのデータ・ソースからキャプチャーされる、あるいは行セット・カーソルが有効化されていない状態でキャプチャーする場合、キャプチャーされるステートメントは、行セット・カーソルを使用しません。

行セット・カーソルが前方スクロール・カーソルに使用されない場合、Type 4 接続では、内部的に同様のメカニズムを使用してネットワーク・トラフィックを最小にすることができます。

このオプションは、以下の 4 つの値のいずれかの値を取ります。

READ_ONLY
(前方スクロールまたは両方向スクロールのいずれかの読み取り専用カーソルを開く) LOB または XML データ・タイプの列を選択しない SELECT ステートメントによる行セット・カーソルを使用できるように指定します。 それ以外の SELECT ステートメントでは行セット・カーソルを使用できません。
このオプションによって、pureQueryXML ファイル内の基準を満たす各 SELECT ステートメントに属性 allowStaticRowsetCursors が追加されて、各ケースの値が TRUE に設定されます。
READ_ONLY_SCROLLABLE
読み取り専用の両方向スクロール・カーソルを開き、LOB または XML データ・タイプの列を選択しない SELECT ステートメントによる行セット・カーソルを使用できるように指定します。 それ以外の SELECT ステートメントでは行セット・カーソルを使用できません。
このオプションによって、pureQueryXML ファイル内の基準を満たす各 SELECT ステートメントに属性 allowStaticRowsetCursors が追加されて、各ケースの値が TRUE に設定されます。
READ_ONLY_FORWARD_ONLY
読み取り専用の前方スクロール・カーソルを開き、LOB または XML データ・タイプの列を選択しない SELECT ステートメントによる行セット・カーソルを使用できるように指定します。 それ以外の SELECT ステートメントでは行セット・カーソルを使用できません。
このオプションによって、pureQueryXML ファイル内の基準を満たす各 SELECT ステートメントに属性 allowStaticRowsetCursors が追加されて、各ケースの値が TRUE に設定されます。
NEVER
どの SELECT ステートメントでも行セット・カーソルを使用できないことを指定します。
このオプションによって、pureQueryXML ファイル内のすべての SELECT ステートメントに属性 allowStaticRowsetCursors が追加されて、各ケースの値が FALSE に設定されます。 これらの SELECT ステートメントのサブセットで行セット・カーソルを使用可能にする場合には、 ワークベンチでこの属性を TRUE に設定できます。

以下の条件のいずれかに当てはまる場合には、このオプションを使用する必要はありません。

  • IBM Data Server Driver for JDBC and SQLJ で両方向スクロール・カーソルの複数行 FETCH を使用するように設定している。 T4 接続を使用して、DB2 for z/OS データ・サーバーに対して SELECT ステートメントを実行して取り込んだ。 T4 接続を使用して、同じデータ・サーバーまたは互換性のあるサーバーに対してステートメントを静的に実行する。
  • IBM Data Server Driver for JDBC and SQLJ で前方スクロール・カーソルおよび両方向スクロール・カーソルの複数行 FETCH を使用するように設定している。 T2 接続を使用して、DB2 for z/OS データ・サーバーに対して SELECT ステートメントを実行して取り込んだ。 T2 接続を使用して、同じデータ・サーバーまたは互換性のあるサーバーに対してステートメントを静的に実行する。
pureQuery が静的に実行する際に行セット・カーソルを使用できるようにする SQL ステートメントは、 以下の条件を満たす必要があります。
  • 取り込まれたステートメントは、SELECT ステートメントである。
  • いずれの当該 SELECT ステートメントも、ストアード・プロシージャーで実行されない。
  • 照会結果の列のデータ・タイプが、LOB あるいは XML のいずれでもない。
  • ステートメントが開くカーソルは読み取り専用である。 静的な更新可能カーソルが行セットを使用する場合、結果が予測不能である。

    pureQuery では、以下のいずれかの条件が真の場合に、ステートメントを更新可能とみなします。

    • 並行性属性が java.sql.ResultSet.CONCUR_UPDATABLE に設定されます。
    • SQL ステートメントに FOR UPDATE 節が含まれます。
    pureQuery では、ステートメントが更新可能でない場合、そのステートメントは読み取り専用とみなします。

行セット・カーソルがサポートされていないデータ・ソースに対してステートメントを静的に実行した場合には、 pureQuery は、行セット・カーソルを使用するように指定したいずれのステートメントでも行セット・カーソルを使用しようとしません。

pureQuery Runtime が SQL ステートメントに対して行セット・カーソルをサポートしない 場合は、IBM Data Server Driver for JDBC and SQLJ が そのような SQL ステートメントに対して行セット・カーソルを使用したとしても、Configure ユーティリティーは そのような SQL ステートメントに対して行セット・カーソルを無効にします。

pureQuery Runtime が SQL ステートメントに対して行セット・カーソルをサポートする場合に、このオプションを指定しないで SQL ステートメントを キャプチャーすると、pureQuery は IBM Data Server Driver for JDBC and SQLJ が行セット・カーソルを使用したときの 対象となる SQL ステートメントに対して行セット・カーソルを使用します。

-cleanConfigure TRUE|FALSE
構成ユーティリティーで pureQueryXML ファイルを処理する範囲を指定します。
TRUE
処理中、すべての SQL ステートメントは、指定されたオプション (sqlLimitgroupSQLByStringgroupSQLBySpecialRegister など) に応じて、いくつかのステートメント・セットとして編成されます。 Configure ユーティリティーは、必要に応じて SQL ステートメントをステートメント・セットに再編成します。

すべてのステートメント・セットについて、Configure ユーティリティーは、構成プロセス中に configureStatus の値を AUTO に設定します。ステートメント・セット configureStatus の値 FINAL がオーバーライドされます。

FALSE
構成ユーティリティーは、pureQueryXML ファイル内のステートメント・セットの名前およびコレクション ID を設定します。 影響を受けるステートメント・セットは、configureStatus フラグが REQUIRED または AUTO に設定されているもの、および名前がないものです。 構成ユーティリティーによりステートメント・セットを変更する必要があると確認された場合に限り、configureStatus フラグが AUTO に設定されているステートメント・セットがこのユーティリティーにより変更されます。

FALSE がデフォルト値です。

名前の付いていないステートメント・セットでは、指定されたオプションがすべて構成により適用されます。

configureStatus の値が REQUIRED に設定されている名前付きステートメント・セットについては、いくつかのオプションが適用されます。 適用されるオプションとしては、-collection、-pkgVersion、-forceSingleBindIsolation、-markDDLForBind などがあります。整合性トークンが更新されます。ステートメント・セット内で静的に SQL ステートメントを実行する場合には、ステートメント・セットから作成されるパッケージを再バインドする必要があります。

構成プロセス時に、Configure ユーティリティーは configureStatus の値を REQUIRED から AUTO に変更します。

configureStatus の値が AUTO に設定されている名前付きステートメント・セットについては、ステートメント・セットを変更する必要があると判定された場合に限り、Configure ユーティリティーはオプションを適用します。ステートメント・セットが変更されない場合、整合性トークンは更新されません。configureStatus フラグが AUTO に設定されていて、-pkgVersion オプションが指定されている場合、このユーティリティーはバージョン ID を使用してステートメント・セットを更新します。 ステートメント・セットが変更されているときにステートメント・セット内で静的に SQL ステートメントを実行する場合、ステートメント・セットから作成されたパッケージを再バインドする必要があります。

configureStatus フラグが FINAL に設定されている名前付きのステートメント・セットでは、ステートメント・セットに問題が見つかった場合に、構成ユーティリティーによりエラーが表示されます。エラーとしては、セクション番号が昇順になっていない場合、また、位置更新ステートメントが SELECT ステートメントに関連付けられていない場合などが含まれます。 ステートメント・セットからステートメントを削除する必要がある場合は、構成ユーティリティーにより警告が表示されます。例えば、-removeSQLInactiveForDays オプションが指定されており、ステートメントのタイム・スタンプが削除条件と一致した場合に、ステートメント・セットからステートメントが削除されることがあります。 ステートメントと関連付けられている特殊レジスター値が変更された場合に、そのステートメントが別のステートメント・セットに移動されることがあります。

-groupSQLBySpecialRegisters オプションが 指定されている場合に、特殊レジスター属性が変更されると、警告がログに記録されます。 この場合、エラーは発行されません。

-collection collection-name
pureQuery StaticBinder ユーティリティーがバインドするパッケージの修飾子。 修飾子は、使用している DB2 データベースのコレクション名の制約を満たしている必要があります。
このパラメーターを指定しない場合、値のデフォルトは NULLID です。
-forceSingleBindIsolation TRUE|FALSE
単一の分離レベルでのみ DB2 パッケージを作成し、分離レベルを示す数字をパッケージ名に付加しないかどうかを指定します。 デフォルト値は FALSE で、数字標識が付加されます。
このオプションは、StaticBinder ユーティリティーの -isolationLevel オプションとともに使用します。

-isolationLevel オプションを使用して単一のステートメント・セットを 2 つまたは 3 つの異なるパッケージに、それぞれ異なる分離レベルでバインドする場合、ステートメント・セットが含まれる pureQueryXML ファイルに対して構成ユーティリティーを実行するときは -forceSingleBindIsolation オプションを使用しないでください。

例えば、StaticBinder ユーティリティーのオプション・ファイルに、次の 2 つの項目を組み込んだとします。

C:/dir/captureFile.pdqxml:MYPKGA = -isolationLevel UR
C:/dir/captureFile.pdqxml:MYPKGA = -isolationLevel CS

構成ユーティリティーを captureFile.pdqxml ファイルに対して実行するときに -forceSingleBindIsolation オプションを使用した場合、StaticBinder ユーティリティーは次のアクションを実行します。

  1. UR 分離レベルでパッケージ MYPKGA をバインドします。
  2. CS 分離レベルでパッケージ MYPKGA を再バインドします。

結果として、単一の MYPKGA パッケージは、CS 分離レベルでバインドされます。

バインドの結果が 2 つの MYPKGA パッケージ (1 つは UR 分離レベル、もう 1 つは CS 分離レベルのもの) となるようにする場合は、captureFile.pdqxml に対して構成ユーティリティーを実行するときに -forceSingleBindIsolation オプションを使用しないでください。

-groupSQLBySpecialRegisters TRUE|FALSE
SQL ステートメントと関連付けられている記録された特殊レジスターの値に基づいて、それらの SQL ステートメントをステートメント・セットとしてグループ化するかどうかを指定します。 デフォルト値は FALSE です。 記録された特殊レジスター値による SQL ステートメントのグループ化は実行されません。 この値が TRUE の場合は、特殊レジスター設定値に基づいて、SQL ステートメントがステートメント・セットにグループ化されます。 同じステートメント・セット内の各 SQL ステートメントには、SQL のキャプチャー時に記録された同じ特殊レジスター値が含まれます。 特殊レジスターに基づいてステートメント・セットを作成する場合、次の規則が適用されます。
  • 記録された特殊レジスター値の単一のセットを伴う SQL ステートメントは、複数のステートメント・セットにグループ化されます。 記録された特殊レジスター値の異なるセットごとにステートメント・セットが作成されます。
  • 記録された特殊レジスター情報を伴わない SQL ステートメントは、単一のステートメント・セットにグループ化されます。
  • 記録された特殊レジスター値の複数のセットに関連付けられている SQL ステートメントは、単一のステートメント・セットとしてグループ化されます。 SQL ステートメントがアプリケーションにより複数回発行され、その SQL ステートメントの各キャプチャー間に特殊レジスター情報が変更された場合、記録された特殊レジスター値の複数のセットがその単一の SQL ステートメントに関連付けられる可能性があります。

-groupSQLBySpecialRegisters オプションと -groupSQLByStrings オプションの両方を使用してステートメント・セットを作成する場合、各ステートメントは最初に特殊レジスター値に基づいてグループ化されます。 特殊レジスターに基づく各グループに対し、-groupSQLByStrings オプションにより指定された値に基づいて SQL ステートメントがグループ化されます。このグループ化が完了すると、必要に応じて -sqlLimit に基づくグループ化が実行されます。 作成されたステートメント・セットに名前が付けられます。

pureQueryXML ファイルに名前付きのパッケージと名前の付けられていないパッケージの両方が含まれており、-cleanConfigure オプションが FALSE に設定されている場合、名前の付けられていないパッケージのみがグループ化され、名前付きパッケージのグループは変更されません。-cleanConfigure オプションが TRUE の場合は、名前付きおよび名前の付けられていないすべてのパッケージの SQL ステートメントがグループ化されます。

SQL ステートメントを静的に実行する場合は、-groupSQLBySpecialRegisters オプションおよび -optionsFileForBind オプションを使用して、パッケージを DB2 データベースにバインドすることができます。

pureQuery Runtime によって記録される特殊レジスター情報については、このトピックの最後にある関連リンクを参照してください。

-groupSQLByStrings (String1|String2|...)...(StringN|StringM|...)
オプションにより指定されるストリングを使用して、サブストリングの一致に基づく SQL ステートメントのグループ化を指定します。このオプションが指定されていない場合は、 グループ化を制御する他のオプションに基づいてグループ化が行われます。

括弧で囲まれた各ストリングを使用して、SQL ステートメントの検索とステートメント・セットへのグループ化がなされます。 ストリングを縦線 ( | ) で区切ることにより、複数のストリングを使用して SQL ステートメントをステートメント・セットに割り当てることができます。同じストリングが複数回出現するか、ストリングが別のストリングのサブストリングであった場合、ログに警告が記録されます。

SQL ステートメントにストリングが含まれる場合、そのステートメントはステートメント・セットに割り当てられます。 複数のストリングを使用してステートメント・セットを作成した場合は、そのいずれかのストリングを含む SQL ステートメントがステートメント・セットに割り当てられます。

ステートメント・セットを作成する場合、ステートメント・セットの作成および一致するステートメントの検索は groupSQLByStrings オプションでリストされている順に行われます。例えば、このオプションの値に (Table1) (Table2 | Table3) が指定されている場合、Configure ユーティリティーにより次のステートメント・セットが pureQueryXML ファイルに作成されます。
  • ストリング Table1 を含む SQL ステートメントが、1 つのステートメント・セットに割り当てられます。
  • Table2 または Table3 のいずれかのストリングを含む SQL ステートメントが、2 番目のステートメント・セットに割り当てられます。
  • 指定されたストリングをいずれも含まない SQL ステートメントが、3 番目のステートメント・セットに割り当てられます。

-groupSQLBySpecialRegisters オプションと -groupSQLByStrings オプションの両方を使用してステートメント・セットを作成する場合、各ステートメントは最初に特殊レジスター値に基づいてグループ化されます。 特殊レジスターを持つ各グループ内で、-groupSQLByStrings オプションで指定された値に基づいて SQL ステートメントがグループ化されます。 このグループ化が完了すると、必要に応じて -sqlLimit が適用され、作成されたステートメント・セットに名前が付けられます。

pureQueryXML ファイルに名前付きのパッケージと名前の付けられていないパッケージの両方が含まれており、-cleanConfigure オプションが FALSE に設定されている場合、名前の付けられていないパッケージのみがグループ化され、名前付きパッケージのグループは変更されません。-cleanConfigure オプションが TRUE の場合は、名前付きおよび名前の付けられていないすべてのパッケージの SQL ステートメントがグループ化されます。

ストリングによる SQL ステートメントのグループ化の例については、を参照してください。

-markDDLForBind
pureQueryXML ファイル内のすべての DDL ステートメントの isBindable 属性に構成ユーティリティーが設定する値を指定します。 構成ユーティリティーは、DDL ステートメントのみが含まれたステートメント・セットの isBindable 属性にもこの値を設定します。

有効な値は、TRUE および FALSE (大/小文字を区別しないストリング) です。デフォルト値はありません。

TRUE
isBindable の値が TRUE である場合には、対応する DDL ステートメントまたは DDL ステートメント・セットは、StaticBinder ユーティリティーが pureQueryXML ファイルを処理するときにバインドされます。
FALSE
isBindable の値が FALSE である場合には、対応する DDL ステートメントまたは DDL ステートメント・セットは、StaticBinder ユーティリティーが pureQueryXML ファイルを処理するときにバインドされません。

このオプションを指定しなかった場合には、 pureQueryXML ファイルの名前がないステートメント・セット内の DDL ステートメントのいずれかで isBindable が TRUE であるかどうかを構成ユーティリティーは検査します。 少なくとも 1 つの DDL ステートメントの isBindable が TRUE であれば、構成ユーティリティーは、DDL ステートメントを単一の名前付き DDL ステートメント・セットに結合するときに、 DDL ステートメントの isBindable 属性を TRUE に設定します。

StaticBinder ユーティリティーは、ステートメント・セットの isBindable 属性の値が TRUE であることを検出すると、 そのステートメント・セット内の、isBindable 属性の値が TRUE であるステートメントをすべてバインドしようとします。

-optionsFile file-name
pureQuery StaticBinder ユーティリティーのメタデータで変更する pureQueryXML ファイルをリストするファイルの名前 (絶対パスまたは相対パスを含む)。
-maxMissingSections number
Configure ユーティリティーがステートメント・セット内のセクション番号間の不要なギャップを削除するタイミングを指定します。 セクション番号は SQL ステートメントに割り当てられます。 pureQuery StaticBinder ユーティリティーが pureQueryXML ファイルをバインドすると、バインド操作で 作成された DB2 パッケージにおいて、セクション番号間の不要なギャップが未使用セクション・ホールになります。

number は、Configure ユーティリティーがセクション番号を再割り当てするまでにステートメント・セットで許可される 不要なギャップの最大数を指定します。 値 number には整数 -1 以上を指定できます。 デフォルト値は -1 です (Configure ユーティリティーはセクション番号を再割り当てしません)。 例えば、number の値が 0 (ゼロ) または 1 である場合は、セクション番号間の不要なギャップがすべて削除されます。

Configure ユーティリティーは、名前が付けられているステートメント・セットの configureStatus 属性が FINAL でないときは、 そのセットでのみセクション番号を再割り当てします。

オプション -removeInvalidSQL またはオプション -removeSQLInactiveForDays を使用すると、 一部の SQL ステートメントがステートメント・セットから削除される可能性があります。 Configure ユーティリティーは、残りの SQL ステートメントのセクション番号を自動的には再割り当てしません。 セクション番号を再割り当てするには、対応するデータベース・パッケージを再バインドする必要があります。

オプション -maxMissingSections を使用してオプション -removeInvalidSQL または オプション -removeSQLInactiveForDays を指定すると、セクション番号が再割り当てされる前に SQL ステートメントが削除されます。

-optionsFileForBind bind-options-file|DEFAULT_IN_PUREQUERYXML_DIRECTORY
Configure ユーティリティーによって StaticBinder オプション・ファイルを生成するように指定します。 このオプション・ファイルには、pureQueryXML ファイル内の SQL ステートメント、ステートメント・セット、および DB2 特殊レジスター情報に基づく、バインド・オプションおよびその他の情報が含まれています。 このファイルが存在している場合は、新規ファイルに置き換えられます。
このオプションには、以下の値を指定できます。
bind-options-file
絶対パスまたは相対パスを含むファイルの名前を指定します。
DEFAULT_IN_PUREQUERYXML_DIRECTORY
pureQueryXML ファイルが含まれているディレクトリーの中に observed.bindProps ファイルが作成されるように指定します。

Configure ユーティリティーのオプション・ファイルの defaultOptions 行にこの値が指定されている場合は、そのファイルにリストされているすべての pureQueryXML ファイルを単一のディレクトリー内に置く必要があります。

このファイル内のバインド・オプションおよびその他の情報を使用して一連のバインド・オプションを指定することにより、SQL ステートメントが静的に実行された際の動作を、アプリケーションから呼び出されて動的に実行された場合と同じにすることができます。 pureQuery StaticBinder ユーティリティーでバインド・オプションを使用することにより、DB2 データベース上にパッケージを作成し、パッケージをデータベースにバインドします。

StaticBinder オプション・ファイルには、pureQueryXML ファイル内のステートメント・セットおよび SQL ステートメントに関する以下のタイプの情報が含まれています。
  • ステートメント・セットのバインド・オプション。
  • SQL ステートメントおよびステートメント・セットに関する情報および警告。

    Configure ユーティリティーは、このファイルで参照されているステートメント・セットおよび特殊レジスター値セットに関する情報を記載したコメントを追加します。

    Configure ユーティリティーは、警告とともに StaticBinder オプション -configureWarning を追加します。 警告では、ステートメント・セットからパッケージをデータベースにバインドした後で SQL ステートメントを静的に実行した際に、SQL ステートメントが予期されたとおりに動作しなかった理由が示されます。

Configure ユーティリティーによって作成される StaticBinder オプション・ファイルに関する情報、および SQL ステートメントがキャプチャーされた際に記録される特殊レジスター情報について詳しくは、このトピックの最後にある関連リンクを参照してください。

-pkgVersion AUTO|version-ID
パッケージをバインドするときに使用されるパッケージ・バージョンを指定します。

DB2 では複数のバージョンのパッケージを同時に存在させることができるため、古いバージョンのパッケージを置換することなく、同名の新しいパッケージをバインドできます。 新しいパッケージで問題が発生した場合には、そのパッケージの古いバージョンを使用できます。

また、構成ユーティリティーは、ファイル名にバージョン ID を付加して、pureQueryXML ファイルのコピーも作成します。

AUTO
現在のタイム・スタンプを使用してバージョン ID を自動的に生成することを指定します。バージョン ID には単一のタイム・スタンプが使用されます。
version-ID
パッケージのバージョン ID を指定します。ストリングは、使用している DB2 のバージョンで有効なものにする必要があります。

バージョン ID には、ご使用のオペレーティング・システムでファイル名として有効な文字のみを含めることができます。 また、ストリングおよびパッケージ名の長さは、ご使用のオペレーティング・システムでファイル名としてサポートされている長さを超えることはできません。

このオプションを指定した場合に、Configure ユーティリティーで pureQueryXML ファイルを変更しないと、pureQueryXML ファイルのコピーは作成されません。

このオプションを指定しなかった場合には、それ以降のバインドによって作成されるデータベース・パッケージはバージョンなしで作成され、ファイルのコピーは作成されません。

実行時のバージョンの検査は、バージョン名ではなく整合性トークンに基づいて行われます。

-pureQueryXml pureQueryXML-file
pureQueryXML ファイルの名前。 このファイルの拡張子は、.pdqxml または .xml でなければなりません。 ファイルへの絶対パスまたは相対パスを指定する必要があります。
-removeSQLInactiveForDays days
ステートメントの最終使用タイム・スタンプの日付を基準として、それから後、どれだけの日数が経過したら未使用の SQL ステートメントを削除するかを指定します。 days 変数が 0 の場合、すべての SQL ステートメントが出力ファイルに書き込まれます。デフォルトの設定では、すべての SQL ステートメントが出力ファイルに書き込まれます。days の値が正数である場合に、 ステートメントの最終使用タイム・スタンプが、現在の日付を基準として指定の日数以前のものであると、Configure ユーティリティーは SQL ステートメントを出力ファイルに 書き込みません。 days 変数が 1 である場合、タイム・スタンプが前日かそれより前の日付である SQL ステートメントは書き込まれません。

例えば、days 変数が 5 であり、現在日付が 11/25 (11 月 25 日) である場合、タイム・スタンプが 11/20 (11 月 20 日) かそれより前である SQL ステートメントは書き込まれません。

タイム・スタンプは、pureQuery Runtime が SQL ステートメントをキャプチャーしたとき、 またはインクリメンタル・キャプチャー・ファイルを使用して Merge ユーティリティーが実行されたときに更新されます。

タイム・スタンプのない SQL ステートメントは出力ファイルに書き込まれます。例えば、以前のバージョンの pureQueryXML ファイルでは、タイム・スタンプ情報がない場合があります。 タイム・スタンプ情報のない pureQueryXML ファイル (バージョン 3 以前) を構成する場合、このオプションは無視され、すべての SQL ステートメントが出力ファイルに書き込まれ、メッセージが表示されます。

メッセージは、出力 pureQueryXML ファイルに書き込まれない SQL ステートメントのログ・ファイルに書き込まれます。-showDetails オプションが true である場合、出力ファイルに書き込まれていないステートメントがすべて表示されます。

-replaceLocations "(original_name1>new_name1 ) ... (original_nameN>new_nameN )"
pureQuery ファイル内の既存のデータベース・ロケーション名を新規ロケーション名で置き換えることを指定します。 既存の名前は、右不等号括弧 (>) で新規の名前と区切られます。 ロケーション名はペアごとに括弧で囲まれます。 置換リストは二重引用符 (") 文字で囲まれます。 名前を区切るために使用される二重引用符文字の前には ¥ 文字を付ける必要があります。 次のオプションの例では、2 つのデータベース・ロケーション名が置き換えられます。
-replaceLocations "(SAMPLE > SAMPLE1) (STLEC1 > STLEC2)"
以下の例では、二重引用符文字が使用されています。
-replaceLocations "(¥"test1¥">¥"prod1¥")"

名前は 1 回の受け渡しプロセスで置き換えられます。 例えば、置換ストリング "(S1>S2) (S2>S3)" を指定すると、S1 の出現箇所が S2 で置き換えられ、S2 の元の出現箇所が S3 で置き換えられます。 Configure ユーティリティーは、S1 を S2 で置き換える処理と、S2 を S3 で置き換える処理を、別々の受け渡しでは行いません。 名前の置換の例については、このトピックの終わりにある例を参照してください。

このオプションは、DB2 for z/OS バージョン 10 および DB2 for Linux, UNIX, and Windows バージョン 9.8 でのみサポートされています。 Configure ユーティリティーの場合、サポートされているデータベースの他のバージョンでも、ロケーション名を置き換えることができます。 上記のバージョンより後のバージョンのデータベースで使用される pureQueryXML ファイルを指定すると、このユーティリティーから警告が表示されます。 上記のバージョンより前のデータベース・バージョンに関しては、警告は表示されません。 Configure ユーティリティーは、pureQueryXML ファイル内の情報からデータベースとバージョンを判別します。

-replaceLocations オプションを指定して Configure ユーティリティーを使用する前に、JAR ファイル pdqsqlparser.jar を クラスパスに追加する必要があります。 この JAR ファイルは、pureQuery Runtime インストール・ディレクトリー lib/sqlparser にあります。

configureStatus 属性の値は、-replaceLocations オプションの影響を受けるステートメント・セットを Configure ユーティリティーが 処理する方法に影響します。
  • configureStatus の値が REQUIRED の場合、名前は、置換オプションによって指定された値に変更されます。 ステートメント・セットの整合性トークンが更新されます。
  • configureStatus の値が AUTO の場合、名前は、置換オプションによって指定された値に変更されます。 名前が置き換えられると、ステートメント・セットの整合性トークンが更新されます。
  • configureStatus の値が FINAL の場合、名前は変更されません。 Configure ユーティリティーは、SQL ステートメントのデータベース・ロケーションもスキーマ名も変更しなかったというメッセージを出力します。 これは、そのステートメントを含むステートメント・セットに対して configureStatus の値が FINAL であるためです。
-cleanConfigure オプションおよび -setPreStatusOfAllPkgs オプションの値は、名前の置換に影響を与えます。
  • -cleanConfigure が true に設定されている場合、-setPreStatusOfAllPkgs の値は 無視され、-replaceLocations および -replaceSchemas の値で置換が行われます。
  • -cleanConfigure が false の場合、configureStatus が REQUIRED および AUTO になっているステートメント・セットに対してのみ 置換が行われます。 -setPreStatusOfAllPkgs の値を FINAL に設定すると、 その名前付きステートメント・セットでは置換は行われません。 ただし、名前が付いていないすべてのステートメント・セットの ID は通常どおり置換されます。

他のオプションの値が、-replaceLocations オプションおよび -replaceSchemas オプションに影響を与えることは ありません。 名前の置換は、-cleanConfigure および -setPreStatusOfAllPkgs を除く他のオプションが適用される前に行われます。

-replaceSchemas "(original_name1>new_name1 ) ... (original_nameN>new_nameN )"
pureQuery ファイル内の既存のスキーマ名を新規スキーマ名で置き換えることを指定します。 既存の名前は、右不等号括弧 (>) で新規の名前と区切られます。 スキーマ名はペアごとに括弧で囲まれます。 置換リストは二重引用符 (") 文字で囲まれます。 名前を区切るために使用される二重引用符文字の前には ¥ 文字を付ける必要があります。 以下のオプションの例では、2 つのスキーマ名が置き換えられます。
-replaceSchemas "(MYSCH1 > MYSCH2) (MYSCH3 > MYSCH4)"
以下の例では、二重引用符文字が使用されています。
-replaceSchemas "(¥"schmTest¥">¥"schmProd¥")"

名前は 1 回の受け渡しプロセスで置き換えられます。 例えば、置換ストリング "(S1>S2) (S2>S3)" を指定すると、S1 の出現箇所が S2 で置き換えられ、S2 の元の出現箇所が S3 で置き換えられます。 Configure ユーティリティーは、S1 を S2 で置き換える処理と、S2 を S3 で置き換える処理を、別々の受け渡しでは行いません。 名前の置換の例については、このトピックの終わりにある例を参照してください。

このオプションは、DB2 for z/OS バージョン 10 および DB2 for Linux, UNIX, and Windows バージョン 9.8 でのみサポートされています。 Configure ユーティリティーの場合、サポートされているデータベースの他のバージョンでも、スキーマ名を置き換えることができます。 上記のバージョンより後のバージョンのデータベースで使用される pureQueryXML ファイルを指定すると、このユーティリティーから警告が表示されます。 上記のバージョンより前のデータベース・バージョンに関しては、警告は表示されません。 Configure ユーティリティーは、pureQueryXML ファイル内の情報からデータベースとバージョンを判別します。

-replaceSchemas オプションを指定して Configure ユーティリティーを使用する前に、JAR ファイル pdqsqlparser.jar を クラスパスに追加する必要があります。 この JAR ファイルは、pureQuery Runtime インストール・ディレクトリー lib/sqlparser にあります。

configureStatus 属性の値、-cleanConfigure オプション、および -setPreStatusOfAllPkgs オプションの 影響については、-replaceLocations オプションを参照してください。

-removeInvalidSQL TRUE|FALSE
pureQueryXML ファイル内で無効としてマークが付けられている SQL ステートメントを Configure ユーティリティーが削除するかどうかを指定します。

有効な値は TRUE および FALSE です。 デフォルト値は FALSE です (無効な SQL ステートメントは pureQueryXML ファイルから削除されません)。

TRUE
Configure ユーティリティーは、無効としてマークが付けられている SQL ステートメントを pureQueryXML ファイルから削除します。

ステートメント・セットの configureStatus 属性の値が FINAL の場合、 そのステートメント・セット内の無効な SQL ステートメントは削除されません。 警告メッセージが表示されます。

TRUE を使用して -restoreInvalidSQLForce オプションも指定した場合は、エラーが表示されます。

FALSE
値が FALSE の場合、またはこのオプションが指定されていない場合は、pureQueryXML ファイル内で無効としてマークが付けられた SQL ステートメントに対してアクションは実行されません。

無効としてマークが付けられた SQL ステートメントについては、pureQuery StaticBinder ユーティリティー・オプション -statementBindError を参照してください。

-restoreInvalidSQLForce TRUE|FALSE
pureQueryXML ファイル内で無効としてマークが付けられている SQL ステートメントを Configure ユーティリティーがリストアするかどうかを指定します。 リストアされた SQL ステートメントは、pureQuery Runtime で使用できます。 このオプションは、誤って無効としてマークが付けられた SQL ステートメントをリストアする場合に使用します。

有効な値は TRUE および FALSE です。 デフォルト値は FALSE です (無効としてマークが付けられた SQL ステートメントはリストアされません)。

TRUE
Configure ユーティリティーは、pureQuery ランタイムで正常に使用できるように、無効な SQL ステートメントをリストアします。

TRUE を使用して -removeInvalidSQL オプションも指定した場合は、エラーが表示されます。

注: Configure ユーティリティーは、ステートメント・セットの configureStatus 属性が FINAL の場合でも、 ステートメント・セット内の SQL ステートメントをリストアします。
FALSE
値が FALSE の場合、またはこのオプションが指定されていない場合は、無効な SQL ステートメントは変更されません。

Configure ユーティリティーは、無効な SQL ステートメントをリストアするときに、 無効な SQL ステートメントを更新して、無効な SQL ステートメントから、無効としてのマークを外します。 また、Configure ユーティリティーは、pureQuery Runtime が SQL ステートメントを有効なステートメントとして 認識するように、pureQueryXML ファイル内の他の箇所も変更します。 例えば、SQL ステートメントにセクション番号が割り当てられます。

無効としてマークが付けられた SQL ステートメントについては、pureQuery StaticBinder ユーティリティー・オプション -statementBindError を参照してください。

-rootPkgName package-name-stem
DB2 パッケージで使用する名前の語幹を指定します。 構成ユーティリティーが DB2 パッケージの名前を作成する方法の詳細については、sqlLimit の説明を参照してください。

package-name-stem は、使用している DB2 データベースで設定された制約の範囲内でなければなりません。

pureQuery StaticBinder ユーティリティーを使用して、 DB2 パッケージを作成するのではなく、DBRM ファイルを生成する場合には、 package-name-stem は、長さが 6 文字以下の大文字にする必要があります。 pureQueryXml ファイルに DDL ステートメントが含まれているか、 (sqlLimit で指定された) パッケージ当たりのステートメント数に到達している場合に、 構成ユーティリティーによって、名前の語幹に文字が追加されます。 StaticBinder ユーティリティーを使用して DBRM ファイルを生成し、package-name-stem構成ユーティリティーのアクティビティーによる追加文字、および分離レベルを組み合わせたストリングが 8 文字より長い場合には、StaticBinder ユーティリティーは例外をスローします。

-setPreStatusOfAllPkgs AUTO|FINAL|REQUIRED
パッケージの状況を指定します。Configure ユーティリティーは、ステートメント・セットを処理する前に、すべてのステートメント・セットを指定された状況に設定します。 設定できる値は AUTOFINAL、または REQUIRED です。
-cleanConfigure オプションが FALSE に設定されているか、このオプションが指定されていない場合に -setPreStatusOfAllPkgs 値を指定すると、次の処理が実行されます。
  • AUTO: 名前の付けられていないステートメント・セットは通常どおり構成されます。 名前付きのセットは、必要な場合にのみ、妥当性検査および構成が行われます。
  • FINAL: すべての名前付きのステートメント・セットの状況が FINAL に設定されます。名前の付けられていないパッケージの状況はすべて無視され、パッケージの構成が行われます。名前付きのステートメント・セットは妥当性検査が行われ、警告が出力されます。
  • REQUIRED: 名前の付けられていないパッケージでは、この値がデフォルトです。名前付きのステートメント・セットでは、構成が実行され、-collection、-forceSingleBindIsolation、-markDDLForBind、-pkgVersion、および -allowStaticRowsetCursors のオプションに新しいオプション値が指定されているなら、そのすべてが名前付きのパッケージに適用されます。

-cleanConfigure オプションが TRUE に設定されている場合、-setPreStatusOfAllPkgs オプションは無視されます。メッセージはログに記録されません。

-setPostStatusOfAllPkgs FINAL
処理の後で Configure ユーティリティーが出力 pureQueryXML ファイルにおけるすべてのステートメント・セットの状況を FINAL に 設定するように指定します。
-setPostStatusOfAllPkgs オプションの値が FINAL に設定されている場合、以下のことが実行されます。
  • -cleanConfigure オプションが FALSE に設定されているか、このオプションが指定されていない場合、 名前が付けられていないステートメント・セットはすべて構成され、名前付きのステートメント・セットはすべて必要に応じて妥当性検査および構成され、 すべてのパッケージの状況は FINAL に設定されます。
  • -cleanConfigure オプションが TRUE に設定されている場合は、すべての SQL ステートメントを構成し、 すべてのステートメント・セットの状況を FINAL に設定します。
-showDetails TRUE|FALSE
Configure ユーティリティーで自身の動作のサマリーを表示するかいなかを指定します。デフォルト値は FALSE です。
-sqlLimit number
DB2 パッケージで許可される SQL ステートメント数の上限を指定します。 一般に、SQL ステートメントの数がこの限度を超えると、超過した分のステートメントを入れる別のパッケージが pureQuery StaticBinder ユーティリティーによってバインドされます。 StaticBinder ユーティリティーは、パッケージ内に若干これより多くの SQL ステートメントを含めることがあります。

デフォルト値は 100 です。

例えば、ご使用のデータベースで長いパッケージ名がサポートされていると想定し、myPackage というルート名で 4 つパッケージ (4 つの異なる分離レベルごとに 1 つのパッケージ) をバインドすると仮定します。 使用する pureQueryXML ファイルに含まれるステートメントの個数が 101 から 199 までの間で、sqlLimit のデフォルト値を使用する場合、 バインド操作により次のパッケージが生成されます。
表 1. パッケージの表
  最初の 100 個の SQL ステートメントが入っているパッケージ 次の n 個の SQL ステートメントが入っているパッケージ。ただし 100 < n < 200
分離レベル CS myPackageA1 myPackageB1
分離レベル RR myPackageA2 myPackageB2
分離レベル RS myPackageA3 myPackageB3
分離レベル UR myPackageA4 myPackageB4

数字はパッケージの分離レベルを示し、 文字は、sqlLimit の値と pureQueryXML ファイルに含まれるステートメントの数に基づいて作成されたパッケージの数を示します。 文字の部分は、英語のアルファベット順になります。文字 z に達し、さらにパッケージを作成する必要がある場合、文字は引き続き AA、AB、AC、という順序で付加されます。 名前がデータベースで許容される長さを超えてしまう場合には、ご使用のルート・パッケージ名の長さを短くするか、sqlLimit の値を大きくしてください。 また、単一の分離レベルでパッケージを作成する場合には、-forceSingleBindIsolation オプションを使用して分離レベルを示す数字を除去することもできます。

DB2 パッケージを表すステートメント・セットを作成する場合に、 SQL ステートメント数の限度を構成ユーティリティーが超える場合があります。 カーソル操作を行う SQL ステートメントはすべて、そのカーソルの DECLARE CURSOR ステートメントと同じパッケージになければなりません。 例えば、アプリケーションで、同じカーソルを参照する異なる UPDATE ステートメントを 15 個実行する場合、15 個のステートメントはすべて、そのカーソルの DECLARE CURSOR ステートメントが置かれている DB2 パッケージに置かれていなければなりません。

アプリケーションで最高のパフォーマンスを得るためには、sqlLimit を 400 より大きい値に設定しないでください。

Trace options
メッセージのログを記録するファイルおよびログを記録する情報のレベルを指定できます。
構文図を読む構文図をスキップする
>>-+------------------------+--+---------------------------+---><
   '- -traceFile--file-name-'  |               .-OFF-----. |   
                               '- -traceLevel--+-ALL-----+-'   
                                               +-SEVERE--+     
                                               +-WARNING-+     
                                               +-INFO----+     
                                               +-CONFIG--+     
                                               +-FINE----+     
                                               +-FINER---+     
                                               '-FINEST--'     

-traceFile file-name
操作に関する情報のログを記録するために使用するファイルへの絶対パスまたは相対パスとファイル名を指定します。
ファイルが既に存在する場合には、pureQuery は、ファイルの既存の内容に新しいメッセージを追加します。デフォルトでは、項目は System.err に書き込まれます。
-traceLevel OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST|ALL
ログに記録する情報のタイプを指定します。 デフォルトのレベルは OFF です。ログ項目を書き込むファイルを指定せず、このオプションを OFF 以外の値に設定した場合、項目は System.err に書き込まれます。
-validateXml TRUE|FALSE
pureQueryXML スキーマを使用する入力 pureQueryXML ファイルに対して XML スキーマの妥当性検査を実行するかどうかを指定します。この値が TRUE の場合、妥当性検査が実行されます。値が FALSE であるか、このオプションが指定されていない場合は、妥当性検査は実行されません。デフォルト値は FALSE です。

入力ファイルごとに、XML スキーマの妥当性検査の成功または失敗が確認され、報告されます。いずれかの入力ファイルが失敗しても、構成処理は停止せず、後続のファイルは処理されます。

pureQueryXML ファイルがスキーマの妥当性検査に失敗した場合は、そのファイルの構成操作は完了されません。最初のスキーマの妥当性検査エラー、およびファイルの構成に失敗したことが報告されます。

現行リリースまたは前のバージョン (バージョン 4 または 3) の pureQueryXML ファイルについてのみ妥当性検査が実施されます。 それより前のバージョンの pureQueryXML ファイルが検出された場合、そのファイルについては妥当性検査が実行されません。

妥当性検査エラーが、Configure ユーティリティーの出力の一部として印刷されます。

-help
サマリー使用情報を表示します。
オプション・ファイルでは無効です。

Configure ユーティリティーの出力

Configure ユーティリティーは、更新するすべての pureQueryXML ファイルに対して 1 つから 4 つまでの追加ファイルを生成します。
  • Configure ユーティリティーが必ず作成する最初の生成ファイルは、ユーザーが提供した pureQueryXML ファイルのコピーです。pureQueryXML ファイルの名前が sampleJDBC.pdqxml であれば、コピーは sampleJDBC.pdqxml.org です (「org」は「original」の略語)。
  • 2 番目のファイルは、Configure ユーティリティーの実行時に、バージョン ID を -pkgVersion オプションとともに指定した場合に生成されます。Configure ユーティリティーがファイルを変更する場合に、pureQueryXML ファイルのコピーの名前にこのバージョン ID が付加されます。 例えば、-pkgVersion Ver1.0 -pureQueryXml sampleJDBC.pdqxml とした場合は、sampleJDBC.pdqxml_Ver1.0 という名前のファイルが作成されます。 Configure ユーティリティーがファイルを変更しない場合、バージョン ID の付いたファイルのコピーは作成されません。
    使用するアプリケーションと関連付けられている以前のバージョンの DB2 パッケージに切り替えられるようにする場合は、バージョン管理を使用できます。例えば、以下の 3 つの pureQueryXML ファイルを持っているとします。
    • 内容は同一の sampleJDBC.pdqxmlsampleJDBC.pdqxml_3.0
    • sampleJDBC.pdqxml_2.5
    • sampleJDBC.pdqxml_2.0
    さらに、同じバージョン番号を使用する、対応する DB2 パッケージも持っているとします。最新の DB2 パッケージ (バージョン 3.0) を使用してアプリケーションを実行した後に、前のパッケージ (バージョン 2.5) への復帰を決めたとします。 現在の sampleJDBC.pdqxml ファイルを sampleJDBC.pdqxml_2.5 のコピーで置き換え、アプリケーションを実行します。 それからさらに、バージョン 3.0 の DB2 パッケージに復帰する場合は、sampleJDBC.pdqxmlsampleJDBC.pdqxml_3.0 のコピーに置き換えるだけで済みます。
  • 3 番目のファイルは、pureQueryXML ファイルに DDL ステートメントが含まれている場合に生成されます。 DECLARE GLOBAL TEMPORARY TABLE ステートメントを除き、Configure ユーティリティーは pureQueryXML ファイル内のすべての DDL ステートメントを、ファイル・タイプ .ddl のテキスト・ファイルにコピーします。 このファイルを使用すると、データベース管理者は、DDL ステートメントを参照する DML ステートメントをバインドする前に、ターゲット DBMS でステートメントを実行できます。 DDL ステートメントが作成または変更するデータベース・オブジェクトは、それらのオブジェクトを参照する DML ステートメントがバインドできるように、必ず存在していなければなりません。 この .ddl ファイルの編集が必要になる場合があります。 例えば、このファイル内で、一致する CREATE TABLE ステートメントまたは CREATE VIEW ステートメントの後に DROP ステートメントが含まれている 場合は、DROP ステートメントを削除する必要があります。
  • 4 番目のファイルは、-optionsFileForBind オプションを指定した場合に生成されます。 Configure ユーティリティーは、DB2 バインド・オプションが含まれた StaticBinder オプション・ファイルを生成します。 Configure ユーティリティーは、ファイルの内容に関する警告およびその他の情報が含まれたコメントもファイルに追加します。 これらのバインド・オプションは、pureQuery StaticBinder ユーティリティーで使用できます。

Configure ユーティリティーが pureQueryXML ファイルに対して行った更新を確認する場合、ファイルをエディターで開くことができます。

Configure ユーティリティーで既に処理した pureQueryXML ファイルに、さらに SQL ステートメントをキャプチャーできます。Configure ユーティリティーを使用して pureQueryXML ファイルの新規 SQL ステートメントを処理する場合に -cleanConfigure オプションを指定すると、既存の SQL ステートメントおよびステートメント・セットの処理方法に次のような影響があります。
  • -cleanConfigure オプションのデフォルト値を使用すると、Configure ユーティリティーにより、pureQueryXML ファイル内の以前に構成およびバインドされた既存のステートメント・セットの内容を保持することが試みられます。 情報を保存できない場合には、メッセージが表示されます。

    この設定を使用して、pureQueryXML ファイルの SQL ステートメントから作成された DB2 パッケージの使用を継続します。

  • -cleanConfigure オプションの値を TRUE に設定すると、Configure ユーティリティーではステートメント・セット情報を保存しません。

pureQueryXML ファイルの XML 属性 isBindable

pureQueryXML ファイルは、pureQuery Runtime によってキャプチャーされた SQL ステートメントおよびその関連情報が含まれた XML ファイルです。 このファイル内で、SQL ステートメントは 1 つ以上のステートメント・セットにグループ化されます。 isBindable という名前の XML 属性は、ステートメント・セットおよび個々の SQL ステートメントの属性です。 isBindable 属性は、SQL ステートメントが DB2 データベースで静的に実行されるかどうかを制御します。 この属性の値は true または false のいずれかとなり、以下のアクションを制御します。
  • バインド操作を実行するかどうか。 StaticBinder ユーティリティーを実行してパッケージを DB2 データベースにバインドする場合、このユーティリティーは isBindable 属性の値を使用して、SQL ステートメントまたはステートメント・セットでパッケージをバインドするかどうかを判別します。
    • この値がステートメント・セットで true である場合、StaticBinder はバインド操作を実行します。
    • この値がステートメント・セットで false である場合、操作は実行されません。
    • この値がステートメント・セットで true であるが、SQL ステートメントで false である場合、バインド操作は実行されますが、ステートメントは除外されます。
  • SQL ステートメントを静的に実行するかどうか。 pureQuery Runtime のプロパティー executionMode の値が STATIC に設定され、ステートメント・セットと SQL ステートメントの isBindable 属性の値が true になっている場合、pureQuery Runtime はそのステートメントを静的に実行しようとします。

    isBindable 属性の値がステートメント・セットで true であるが、セット内の SQL ステートメントでは false である場合、allowDynamicSQL という pureQuery Runtime プロパティーの値によって、pureQuery Runtime がステートメントの動的実行を試行するか、エラーを返すかが制御されます。

    ステートメント・セットの isBindable 属性の値が false である場合は、pureQuery Runtime のプロパティー allowDynamicSQL によって、pureQuery Runtime がセット内の SQL ステートメントの動的実行を試行するか、エラーを返すかが制御されます。

ワークベンチで pureQueryXML エディターを使用することによって、pureQueryXML ファイル内のステートメント・セットおよびステートメントの isBindable 属性の値を変更できます。

推奨: pureQueryXML ファイルの編集はワークベンチのみを使用して行うことを IBM は強くお勧めします。 ワークベンチ以外で pureQueryXML ファイルを編集した場合には、ファイルが使用できなくなるリスクがあります。

pureQueryXML ファイルを手動で編集する場合は、編集する前にファイルのバックアップ・コピーを作成するようにしてください。 pureQuery の Merge ユーティリティー、Configure ユーティリティー、または StaticBinder ユーティリティーで -validateXml オプションを 使用して、入力 pureQueryXML ファイルに対して XML スキーマ妥当性検査を実行します。

ワークベンチの外側で pureQueryXML ファイルを編集する必要がある場合は、編集するステートメント・セットの statementSet というエレメントの開始タグで、configureStatus 属性の値を REQUIRED に設定してください。 ファイルの編集が終了したら、ファイルに対して Configure ユーティリティーを実行します。

configureStatus 属性の値が REQUIRED に設定された XML フラグメントを、以下に示します。
<statementSet configureStatus="REQUIRED">

ワークベンチの外側で pureQueryXML ファイルを編集する場合は、ステートメント・セットまたはステートメントの isBindable 属性の値を変更できます。

ステートメント・セットの isBindable 属性を変更するには、そのステートメント・セットのエレメントの子エレメントである package エレメントの isBindable 属性の値を変更します。

SQL ステートメントの isBindable 属性を変更するには、statement エレメントの子エレメントである statementAttributes エレメントの isBindable 属性の値を変更します。

以下に示す XML フラグメントは、pureQueryXML ファイルのステートメント・セットの一部です。
<statementSet configureStatus="AUTO">
      <package collection="NULLID" consistencyToken="0000012551b7579f" isBindable="true" 
            isDDLPackage="false" name="pureQu" version=""/>
      <statements>
         <statement id="1" sectionNumber="1">
            <statementDescriptor>
               <prepareSql>SELECT CID FROM CUSTOMER WHERE CID &gt; 1002 </prepareSql>
               <statementType>QUERY</statementType>
               <resultSetMetadata>
                  <column columnName="CID" columnNameX="CID" databaseName="XMLTEST" 
                      databaseSchema="TEST " db2type="492" length="8" nullable="false" 
                      tableName="CUSTOMER"/>
               </resultSetMetadata>
               <statementAttributes cursorName="DB_PDQ_SPC2" isBindable="true" 
                    prepareOptions="FOR READ ONLY " resultSetConcurrency="CONCUR_READ_ONLY" 
                    resultSetHoldability="HOLD_CURSORS_OVER_COMMIT" 
                    resultSetType="TYPE_FORWARD_ONLY"/>
               <processedSql />
            </statementDescriptor>
            <statementMetadata>
               <traceInfo>
                  <sqlDefinitionStackTraces>
                     <trace>
          . . .
</statementSet>

この例の中の以下の XML フラグメントで、isBindable 属性は package エレメントの開始タグの中にあります。 値は true です。

<package collection="NULLID" consistencyToken="0000012551b7579f" isBindable="true" 
     isDDLPackage="false" name="pureQu" version=""/>

このステートメント・セットの例には、SQL ステートメント SELECT CID FROM CUSTOMER WHERE CID > 1002 が含まれています。 次の XML フラグメントでは、SQL ステートメントの isBindable 属性は statementAttributes エレメントの属性です。 statementAttributes エレメントは、この SQL ステートメントが含まれている statement エレメントの子エレメントです。 値は true です。

<statementAttributes cursorName="DB_PDQ_SPC2" isBindable="true" 
      prepareOptions="FOR READ ONLY " resultSetConcurrency="CONCUR_READ_ONLY" 
      resultSetHoldability="HOLD_CURSORS_OVER_COMMIT" 
      resultSetType="TYPE_FORWARD_ONLY"/>

DB2 特殊レジスター

pureQuery Runtime により DB2 データベースに対して実行されている SQL ステートメントをキャプチャーした場合に、SQL ステートメントと共に一部の DB2 特殊レジスター値が追跡および記録されます。記録された特殊レジスター値は共通の設定値です。この値が変更されると、SQL ステートメントの動作に影響を与えることがあります。

Configure ユーティリティーは、Configure ユーティリティー・アクティビティーの一部として、pureQueryXML ファイルに記録された特殊レジスター・アクティビティーを表示します。

SQL ステートメントとともに記録された特殊レジスター情報に基づいてステートメント・セットを作成するには、-groupSQLBySpecialRegisters オプションを指定します。

SQL ステートメントのキャプチャー時に記録された特殊レジスター情報に基づくバインド情報が含まれた StaticBinder オプション・ファイルを作成するには、-optionsFileForBind オプションを指定します。 -groupSQLBySpecialRegisters オプションを指定して SQL ステートメントの特殊レジスター情報に基づいたステートメント・セットを作成しなかった場合でも、StaticBinder オプション・ファイルは作成できます。 このファイルに関する情報、および pureQuery Runtime によって記録される特殊レジスター情報について詳しくは、このトピックの最後にある関連リンクを参照してください。

pureQueryXML ファイルの特殊レジスター情報

SQL ステートメントを pureQueryXML ファイルにキャプチャーする際、pureQuery Runtime はそのステートメントの特殊レジスター情報を記録します。 特殊レジスター情報は、このファイル内の specialRegValuesSet という XML エレメントに格納されます。

specialRegValuesSet エレメントには、specialRegValue という XML エレメントのインスタンスが 1 つ以上含まれています。 specialRegValueId という属性は、specialRegValue エレメントの属性です。 specialRegValueId 属性の値は、specialRegValue エレメントの ID です。

specialRegValue エレメントには、SQL ステートメントのキャプチャー時に記録された特殊レジスター情報のセットも含まれています。 キャプチャーされた SQL ステートメントは、statementSet という XML エレメントのインスタンス内に格納されます。 各 statementSet エレメントには、statement という XML エレメントのインスタンスが 1 つ以上含まれています。 各 statement エレメントには、キャプチャーされた SQL ステートメントに関する SQL 情報が含まれています。

specialRegValueId 属性の値を使用して、specialRegValue エレメント内の特殊レジスター情報が SQL ステートメントに関連付けられます。 pureQuery Runtime は、specialRegValueId 属性の値を、SQL ステートメントの statementAttributes というエレメントの属性の値として指定します。

pureQuery Runtime によって記録される特殊レジスター情報については、このトピックの最後にある関連リンクを参照してください。

以下に示す XML フラグメントは、pureQueryXML ファイルの specialRegValuesSet エレメントの例です。

<specialRegValuesSet>
    <specialRegValue specialRegValueId="0" 
         specialRegisterVectorValue="UNTRACKED_SET: FALSE|
         SCHEMA: MYTEST |
         PATH: &quot;SYSIBM&quot;,&quot;SYSFUN&quot;,&quot;SYSPROC&quot;,
            &quot;SYSIBMADM&quot;,&quot;MYTEST&quot;|
         SQLID: MYTEST |
         DECFLOAT ROUNDING: ROUND_HALF_EVEN"/>
    <specialRegValue specialRegValueId="1" 
         specialRegisterVectorValue="UNTRACKED_SET: FALSE|
         SCHEMA: DB2ADMIN|
         PATH: &quot;SYSIBM&quot;,&quot;SYSFUN&quot;,&quot;SYSPROC&quot;,
            &quot;SYSIBMADM&quot;,&quot;DB2ADMIN&quot;|
         SQLID: DB2ADMIN|
         DECFLOAT ROUNDING: ROUND_HALF_EVEN"/>
</specialRegValuesSet> 
pureQueryXML ファイルの以下のフラグメントは、pureQueryXML ファイル内の SQL ステートメントの statement エレメントの一部を示しています。
<statement id="1" sectionNumber="1">
     <statementDescriptor>
        <prepareSql>SELECT count(EMPNO) FROM EMPLOYEE WHERE WORKDEPT NOT LIKE 'E21' </prepareSql>
        <statementType>QUERY</statementType>
        <resultSetMetadata>
           <column columnName="1" databaseName="SAMPLE" db2type="496" length="4" nullable="false" 
               unnamedColumn="1"/>
        </resultSetMetadata>
        <statementAttributes cursorName="DB_PDQ_SPC5" 
            isBindable="true" prepareOptions="FOR READ ONLY " resultSetConcurrency="CONCUR_READ_ONLY" 
            resultSetHoldability="HOLD_CURSORS_OVER_COMMIT" resultSetType="TYPE_FORWARD_ONLY" 
            specialRegValuesUsed="0,1"/>
        <processedSql />
     </statementDescriptor>
     . . .
</statement>

この例で、statementAttributes エレメントの specialRegValuesUsed 属性の値は、2 つの特殊レジスター・セット ID を指定しています。 セット ID の値は 0 と 1 です。 pureQuery Runtime は SQL ステートメントを複数回キャプチャーしました。 pureQuery がステートメントをキャプチャーした際、2 つの異なる特殊レジスター情報セットが記録されました。

Configure ユーティリティーを 2 つのファイルに対してはじめて実行する場合の例

2 つの pureQueryXML ファイル (pureQuery 以外の API アプリケーションで作成する接続ごとに 1 つずつ) があるとします。ファイル名は、capture_sales.pdqxml (450 の SQL ステートメントを含む) および capture_employee.pdqxml (これも 450 の SQL ステートメントを含むが、その 50 は DDL ステートメント) であるとします。

これらのファイルに対して、ユーティリティーの初回実行時に、以下の値を Configure ユーティリティーに提供する必要があります。

表 2. Configure ユーティリティーの値の例
Configure ユーティリティーのオプション capture_sales.pdqxml capture_employee.pdqxml
-collection first second
-markDDLForBind FALSE FALSE
-pkgVersion 1.0 1.0
-rootPkgName PK001S PK005E
-sqlLimit 200 200
この状況では、Configure ユーティリティーの実行に使用できる以下の 2 つの方式があります。
  • Configure ユーティリティーを 2 度実行して、それぞれで異なる .pdqxml ファイルを提供する。
    java com.ibm.pdq.tool.Configure -collection first -pkgVersion 1.0 -rootPkgName PK001S ¥
    -sqlLimit 200 -pureQueryXml C:¥capture_files¥capture_sales.pdqxml
    java com.ibm.pdq.tool.Configure -collection second -pkgVersion 1.0 -rootPkgName PK005E ¥
    -sqlLimit 200 -pureQueryXml C:¥capture_files¥capture_employee.pdqxml
  • Configure ユーティリティーを一度だけ実行して、.pdqxml ファイルがリストされているオプション・ファイルを提供する。

    コマンドは、次のようになります。

    java com.ibm.pdq.tool.Configure -optionsFile myOptionsFile.txt

    このオプション・ファイルには、 ご使用のオペレーティング・システムでサポートされる任意の名前と拡張子を指定できます。 このオプション・ファイルには、以下の項目が含まれています。

    defaultOptions = -pkgVersion 1.0 -sqlLimit 200
    
    C:¥capture_files¥capture_sales.pdqxml = -collection first -rootPkgName PK001S
    
    C:¥capture_files¥capture_employee.pdqxml = -collection second -rootPkgName PK005E
どの方式を使用するとしても、Configure ユーティリティーは、さまざまなオプションに対してユーザーが指定した値で 2 つの .pdqxml ファイルを更新します。さらに Configure ユーティリティーは、以下のファイルも生成します。
capture_sales.pdqxml に基づくファイル
capture_sales.pdqxml.org

capture_sales.pdqxml_1.0

capture_employee.pdqxml に基づくファイル
capture_employee.pdqxml.org

capture_employee.pdqxml_1.0

capture_employee.ddl

-groupSQLByStrings オプションによるステートメント・セットの作成例

次の例では、pureQueryXML ファイルに次の 3 つの SQL ステートメントが含まれていることを前提としています。
SELECT * FROM TABLE3
SELECT * FROM TABLE2
SELECT * FROM TABLE1
-groupSQLByStrings オプションの値が (TABLE3) (TABLE2) (TABLE1) である場合、ステートメントは次のステートメント・セットに割り当てられます。
Statement set 1: 
    SELECT * FROM TABLE3
Statement set 2: 
    SELECT * FROM TABLE2
Statement set 3: 
    SELECT * FROM TABLE1
値が (TABLE1) (TABLE3|TABLE2) である場合、ステートメントは次のステートメント・セットに割り当てられます。
Statement set 1: 
    SELECT * FROM TABLE1
Statement set 2: 
    SELECT * FROM TABLE2
    SELECT * FROM TABLE3
値が (TABLE1|TABLE2) (TABLE3|TABLE2) である場合、ステートメントは次のステートメント・セットに割り当てられます。
Statement set 1: 
    SELECT * FROM TABLE1, 
    SELECT * FROM TABLE2
Statement set 2: 
    SELECT * FROM TABLE3
注: 複数のステートメント・セット定義で同じ表名を使用することは推奨されておらず、警告メッセージがログに記録されます。

スキーマ名とデータベース・ロケーションの更新

名前は 1 回の受け渡しプロセスで置き換えられます。 例えば、置換ストリング "(S1>S2) (S2>S3)" を指定すると、S1 の出現箇所が S2 で置き換えられ、S2 の元の出現箇所が S3 で置き換えられます。 Configure ユーティリティーは、S1 を S2 で置き換える処理と、S2 を S3 で置き換える処理を、別々の受け渡しでは行いません。

"(SCH1>SCH2) (SCH2>SCH3)" のような置換ストリングを指定すると、pureQueryXML ファイルを複数回構成したときに、 予期しない結果が生じることがあります。 初回構成時に、名前 SCH1 が SCH2 に変更され、ファイル内で元々 SCH2 であった名前が SCH3 に変更されます。 ファイルの 2 度目の構成時には、名前 SCH2 (ファイルの初回構成時に変更された名前 SCH2 のインスタンスを含む) が SCH3 に変更されます。 ファイル内で元々 SCH1 または SCH2 であった名前はすべて、SCH3 に変更されます。

スキーマ名を SCH1 から SCH2 に置き換えてから SCH2 を SCH1 に置き換えるような名前の置換を実行する場合は、 Configure ユーティリティーを 2 回実行します。 最初にオプション -replaceSchemas "(SCH1>SCH2)" を指定してこのユーティリティーを実行し、 次にオプション -replaceSchemas "(SCH2>SCH1)" を指定してこのユーティリティーをもう一度実行します。

名前置換の例

Configure ユーティリティーは、ID と文字ストリング・リテラルを区別できます。 例えば、pureQueryXML ファイルに次の SQL ステートメントが含まれているとします。 このステートメントでは、文字ストリング・リテラル内のスキーマ名と同じ ID が使用されています。
INSERT INTO "schm0".table0 (col1, col2, col3) values (1, 'schm0', 'col3')
-replaceSchemas "(¥"schm0¥">¥"prodSch¥")" が 指定されると、このユーティリティーはスキーマ名を置き換えますが、リテラルを置き換えることはしません。
INSERT INTO "prodSch".table0 (col1, col2, col3) values (1, 'schm0', 'col3')
置換名にスペース文字が含まれている場合、 このユーティリティーは引用符内のスペース文字をトリムします。 例えば、次の 2 つの -replaceLocations オプションは同一です。
-replaceLocations " (   sample >   testDB ) "
-replaceLocations "(sample > testDB)"
SQL ステートメントにおいて区切り文字で区切られた スキーマ名とデータベース・ロケーション名については、このユーティリティーは次の 2 つのステートメント内のスキーマ名を変更できます。
SET CURRENT SCHEMA = "schm0"
SET CURRENT SCHEMA = 'schm0';
置換ストリング "('schm0'>'prodSchm')" または "(¥"schm0¥">¥"prodSchm¥")" を使用すると、両方の名前が置き換えられますが、引用符は保持されます。
SET CURRENT SCHEMA = "prodSchm"
SET CURRENT SCHEMA = 'prodSchm';
次の SQL ステートメントが DB2 for Linux, UNIX and Windows データベースの pureQueryXML ファイルに含まれるとします。
SET PACKAGE PATH = 'schema1, schema2'
Configure ユーティリティーは、2 つの名前をスキーマ名として認識し、 必要に応じてそれらを置き換えます。
ただし、この SQL ステートメントが DB2 for z/OS データベースの pureQueryXML ファイルに含まれる 場合は、値 abc はコレクション ID であり、変更されません。
SET PACKAGE PATH = 'abc'
次の SET PATH ステートメントの場合は、 値 schema1 が DB2 for z/OS および DB2 for Linux, UNIX, and Windows の スキーマ名です。
SET PATH = 'schema1';
この名前は、必要に応じてこのユーティリティーによって変更されます。

フィードバック