このファイルをワークベンチのエディターで開くには、ダブルクリックします。このファイルは、Java™ プロジェクトの dataAccessFolder フォルダー内にあります。
このファイルでは、プロジェクト内のすべての pureQueryXML ファイルに適用されるオプションを指定できます。 個々の pureQueryXML ファイルに固有のオプションも指定できます。
このファイルにはコメントを追加できます。 各コメントの先頭には # 記号を付けます。
項目を作成または編集するときに支援が必要な場合は、CTRL+SPACE キー (このデフォルトのキー・ストロークを変更した場合には独自のキー・ストローク) を押すことができます。
構文図を理解する上で役立つ情報については、構文図の読み方を参照してください。
ファイルを保存した後、ワークベンチではそのファイルに対して Configure ユーティリティーが実行され、「SQL Outline」ビューが最新表示されます。 バインド操作はまだ実行されていないため、ビューに表示されるのはバインドされていないパッケージのみです。
以下の図は、このファイルでリストされた pureQueryXML ファイルすべてに対するデフォルト・オプションの設定で許可される構文を示します。
>>-defaultOptions--=--+-----------------------------------+-----> | .-NULLID----------. | '- -collection--+-collection-name-+-' >--+--------------------------------+---------------------------> '- -pkgVersion-- -+-AUTO-------+-' '-version-ID-' >--+--------------------------------------------------------+---> '- -allowStaticRowsetCursors--+-READ_ONLY--------------+-' +-READ_ONLY_SCROLLABLE---+ +-READ_ONLY_FORWARD_ONLY-+ '-NEVER------------------' >--+---------------------------------------+--------------------> | .-FALSE-. | '- -forceSingleBindIsolation--+-TRUE--+-' >--+------------------------+--+-----------------------+------->< | .-100----. | | (1) | '- -sqlLimit--+-number-+-' '-| Trace options |-----'
次の構文図は、このファイルでリストされた個々の pureQueryXML ファイルに対するオプションの設定で許可される構文を示します。
>>-pureQueryXML-file--+-----------------------------------+-----> | .-NULLID----------. | '- -collection--+-collection-name-+-' >--+--------------------------------+---------------------------> '- -pkgVersion-- -+-AUTO-------+-' '-version-ID-' >-- -rootPkgName--package-name-stem-----------------------------> >--+--------------------------------------------------------+---> '- -allowStaticRowsetCursors--+-READ_ONLY--------------+-' +-READ_ONLY_SCROLLABLE---+ +-READ_ONLY_FORWARD_ONLY-+ '-NEVER------------------' >--+-----------------------------+------------------------------> | .-FALSE-. | '- -cleanConfigure--+-TRUE--+-' (1) >--+---------------------------------------+--------------------> | .-FALSE-. | '- -forceSingleBindIsolation--+-TRUE--+-' >--+----------------------------------------------------------------+--> | .----------------------------------. | | V | | '- -replaceLocations--"----(--original_name-->--new_name--)-+--"-' >--+--------------------------------------------------------------+--> | .----------------------------------. | | V | | '- -replaceSchemas--"----(--original_name-->--new_name--)-+--"-' >--+------------------------+--+-----------------------+------->< | .-100----. | | (2) | '- -sqlLimit--+-number-+-' '-| Trace options |-----'
ファイル名に加えて、ファイルへの絶対パスを指定する必要があります。
行セット・カーソルをサポートするのは DB2 for z/OS だけです。行セット・カーソルは、IBM Data Server Driver for JDBC and SQLJ のプロパティーで行セット・カーソルを使用するように指定されている場合にのみ使用されます。 異なるタイプのデータ・ソースからキャプチャーされる、あるいは行セット・カーソルが有効化されていない状態でキャプチャーする場合、キャプチャーされるステートメントは、行セット・カーソルを使用しません。
行セット・カーソルが前方スクロール・カーソルに使用されない場合、Type 4 接続では、内部的に同様のメカニズムを使用してネットワーク・トラフィックを最小にすることができます。
このオプションは、以下の 4 つの値のいずれかの値を取ります。
以下の条件のいずれかに当てはまる場合には、このオプションを使用する必要はありません。
以下のいずれかの条件が満たされる場合、pureQuery はそのステートメントを更新可能と見なします。
行セット・カーソルをサポートしないデータ・ソースに対してステートメントを静的に実行した場合、pureQuery は、行セット・カーソルの使用が指定されたどのステートメントに対しても、それを使用しようとしません。
pureQuery Runtime での行セット・カーソルのサポート対象とならない SQL ステートメントに関して、Configure ユーティリティーは行セット・カーソルを無効にします (IBM Data Server Driver for JDBC and SQLJ でこれらのステートメントに関して行セット・カーソルが使われた場合でも)。
このオプションを指定せず、しかも pureQuery Runtime でステートメントの行セット・カーソルがサポートされる場合には、ステートメントのキャプチャー時に IBM Data Server Driver for JDBC and SQLJ によって行セット・カーソルが使われたステートメントに関して、pureQuery は行セット・カーソルを使用します。
すべてのステートメント・セットについて、Configure ユーティリティーは、構成プロセス中に configureStatus の値を AUTO に設定します。ステートメント・セット configureStatus の値 FINAL がオーバーライドされます。
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 オプションが 指定されている場合に、特殊レジスター属性が変更されると、警告がログに記録されます。 この場合、エラーは発行されません。
-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 ユーティリティーは次のアクションを実行します。
結果として、単一の MYPKGA パッケージは、CS 分離レベルでバインドされます。
バインドの結果が 2 つの MYPKGA パッケージ (1 つは UR 分離レベル、もう 1 つは CS 分離レベルのもの) となるようにする場合は、captureFile.pdqxml に対して構成ユーティリティーを実行するときに -forceSingleBindIsolation オプションを使用しないでください。
DB2 では複数のバージョンのパッケージを同時に存在させることができるため、古いバージョンのパッケージを置換することなく、同名の新しいパッケージをバインドできます。 新しいパッケージで問題が発生した場合には、そのパッケージの古いバージョンを使用できます。
また、構成ユーティリティーは、ファイル名にバージョン ID を付加して、pureQueryXML ファイルのコピーも作成します。
バージョン ID には、ご使用のオペレーティング・システムでファイル名として有効な文字のみを含めることができます。 また、ストリングおよびパッケージ名の長さは、ご使用のオペレーティング・システムでファイル名としてサポートされている長さを超えることはできません。
このオプションを指定した場合に、Configure ユーティリティーで pureQueryXML ファイルを変更しないと、pureQueryXML ファイルのコピーは作成されません。
このオプションを指定しなかった場合には、それ以降のバインドによって作成されるデータベース・パッケージはバージョンなしで作成され、ファイルのコピーは作成されません。
実行時のバージョンの検査は、バージョン名ではなく整合性トークンに基づいて行われます。
package-name-stem は、使用している DB2 データベースで設定された制約の範囲内でなければなりません。
DB2 パッケージを作成する代わりに、DBRM ファイルを生成するために pureQuery StaticBinder ユーティリティーを使用する予定の場合、package-name-stem は長さ 6 文字以下の大文字でなければなりません。 pureQueryXml ファイルに DDL ステートメントが含まれているか、 (sqlLimit で指定された) パッケージ当たりのステートメント数に到達している場合に、 構成ユーティリティーによって、名前の語幹に文字が追加されます。 StaticBinder ユーティリティーを使用して DBRM ファイルを生成し、package-name-stem、構成ユーティリティーのアクティビティーによる追加文字、および分離レベルを組み合わせたストリングが 8 文字より長い場合には、StaticBinder ユーティリティーは例外をスローします。
-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 の中にあります。
他のオプションの値が、-replaceLocations オプションおよび -replaceSchemas オプションに影響を与えることは ありません。 名前の置換は、-cleanConfigure および -setPreStatusOfAllPkgs を除く他のオプションが適用される前に行われます。
-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 オプションを参照してください。
デフォルト値は 100 です。
| 最初の 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 より大きい値に設定しないでください。
>>-+------------------------+--+---------------------------+--->< '- -traceFile--file-name-' | .-OFF-----. | '- -traceLevel--+-ALL-----+-' +-SEVERE--+ +-WARNING-+ +-INFO----+ +-CONFIG--+ +-FINE----+ +-FINER---+ '-FINEST--'