オプション・ファイルを使用せずにクライアント最適化のための StaticBinder ユーティリティーを実行する場合の構文

pureQueryXML ファイルが 1 つしかない場合か、すべての pureQueryXML ファイルに同じオプションを使用する場合は、pureQueryXML ファイルの名前と、DB2® パッケージまたは DBRM ファイルの作成用のオプションを指定するためだけに、このコマンドを使用することを選択できます。
構文図を読む構文図をスキップする
                                        (1)   
>>-java--com.ibm.pdq.tools.StaticBinder------------------------->

    (2)                                                                 
>-------- -url--jdbc--:--db2--:--//--server--+---------+--/--database-->
                                             '-:--port-'                

>-- -username--user-ID-- -password--password-------------------->

                   .---------------------------------------------.   
                   V                                             |   
>-- -pureQueryXml----+-pureQueryXML-file-----------------------+-+-->
                     '-pureQueryXML-file--:--base-package-name-'     

>--+------------------------------------------------------------------------+-->
   |                  (3)                                                   |   
   +-| DBRM options |-------------------------------------------------------+   
   +- -bindOptions-- -"--bind-options--"--+-------------------------------+-+   
   |                                      '- -verifyPackages--+-DETAIL--+-' |   
   |                                                          '-SUMMARY-'   |   
   '- -verifyPackages--+-DETAIL--+------------------------------------------'   
                       '-SUMMARY-'                                              

>--+----------------------------------------------+------------->
   |                     .----------------------. |   
   |                     V                      | |   
   '- -configureWarning---- -configure-warnings-+-'   

>--+-----------------------------+--+----------------+---------->
   |                   .-FALSE-. |  |            (4) |   
   '- -differenceOnly--+-TRUE--+-'  '-| -grant |-----'   

>--+--------------------------+--+--------------------------+--->
   '- -isolationLevel--+-CS-+-'  |                .-FALSE-. |   
                       +-RR-+    '- -showDetails--+-TRUE--+-'   
                       +-RS-+                                   
                       '-UR-'                                   

                         .-NOT_SET------.   
>-- -statementBindError--+-REMOVE-------+----------------------->
                         '-MARK_INVALID-'   

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

>--+--------+--------------------------------------------------><
   '- -help-'   

注:
  1. オプションは任意の順序で指定できます。
  2. DBRM ファイルのみを作成している場合には、-url、-username-、および -password オプションは使用する必要はありません。
  3. 構文については、以下のオプションの説明を参照してください。
  4. 構文については、このオプションの説明を参照してください。
  5. 構文については、以下のオプションの説明を参照してください。

オプションの説明

-bindOptions "string-of-bind-options"
これらのオプションには、同名の DB2 プリコンパイル・オプションおよびバインド・オプションと同じ機能があります。 ストリングの形式は、以下のいずれかです。
  • "option_1 value_1 option_2 value_2"
  • "option_1(value_1) option_2(value_2)"

各オプションの値にスペースを含めることはできません。

これらのオプションのリストおよび説明については、BIND コマンドを参照してください。

DB2 for Linux, UNIX, and Windows バージョン 9.7 で CONCURRENTACCESSRESOLUTION バインド・オプションを使用した場合には、 CS および RR 分離レベルでバインドされているパッケージ内のすべてのステートメントにオプションが適用されます。 これらの 2 つの分離レベルにのみ適用されるこのオプションによって、アプリケーションは、他のアプリケーションがロックした行内で、最後にコミットされた値を検出できます。
-configureWarning configure-warnings
pureQuery Configure ユーティリティーからの警告を指定します。複数の警告値を指定するには、スペースで区切ってください。

Configure ユーティリティーの -optionsFileForBind オプションを指定すると、Configure ユーティリティーは StaticBinder オプション・ファイルを生成します。このオプション・ファイルには、バインド・オプションと追加情報が含まれています。この情報は、SQL ステートメント、ステートメント・セット、および pureQueryXML ファイル内の DB2 特殊レジスター情報に基づいています。 Configure ユーティリティーは、潜在的な問題を検出すると、-configureWarning オプションをバインド・オプションに追加します。 指定されたバインド・オプションを使用してパッケージをデータベースにバインドし、SQL ステートメントを静的に実行した場合、正しくない動作になる可能性があります。

Configure ユーティリティーは、ステートメント・セットのコメント行への警告トークンの追加も行います。 このコメントには、ステートメント・セットおよびステートメント・セット内の SQL ステートメントに関連した警告と情報が含まれることがあります。警告の修正方法については、Configure ユーティリティーによって作成されるバインド・オプションに記載された、警告とともに生成されるトークンに関する情報を参照してください。

StaticBinder ユーティリティーの実行時に -configureWarning オプションを指定した場合、このユーティリティーは関連パッケージのバインドを試みます。 StaticBinder ユーティリティーは、警告によって指定された問題を示す警告メッセージの印刷も行います。

-configureWarning オプションでは、以下の値を使用することができます。

INCREMENTAL_SPECIAL_REGISTER_VALUES_PRESENT
pureQueryXML ファイルでは、ステートメント・セット内の 1 つ以上の SQL ステートメントの XML 属性に incrementalSpecialRegValuesUsed 属性が含まれています。 この属性は、新しい特殊レジスター値セットの使用状況を記録します。 ステートメント・セットは、特殊レジスターの設定に基づいてグループ化されています。 ただし、グループ化にあたって新しい特殊レジスター値セットは考慮されていません。

Configure ユーティリティーは、ステートメント・セットのコメント行への incrementalSpecialRegValuesPresent トークンの追加も行います。

SPECIAL_REGISTER_VALUE_SET_MISSING
この値は、ステートメント・セット内の SQL ステートメントが特殊レジスター値セットを参照しているが、pureQueryXML ファイルでは定義されていないことを示します。

Configure ユーティリティーは、ステートメント・セットのコメント行への missingSpecialRegValueId(IDs) トークンの追加も行います。

MULTIPLE_SPECIAL_REGISTER_VALUE_SETS
この値は、ステートメント・セット内の各 SQL ステートメントが複数の特殊レジスター値セットを使用して実行されたことを示します。

Configure ユーティリティーは、ステートメント・セットのコメント行への SQLGroupedBySpecialRegisters(MULTI_SRINFO) トークンの追加も行います。

SPECIAL_REGISTER_GROUPING_INCONSISTENT
この値は、ステートメント・セットが特殊レジスターの設定値に基づいて正しくグループ化されていないことを示します。

Configure ユーティリティーは、ステートメント・セットのコメント行への SQLGroupedBySpecialRegisters(INCONSISTENT_SRINFO) トークンの追加も行います。

DBRM options
パッケージを作成するのではなく DBRM ファイルを生成する場合は、これらのオプションを使用します。 これらのオプションは、DB2 for z/OS® を使用している場合にのみ適用されます。

StaticBinder ユーティリティーで DBRM ファイルが生成された後に、それらのファイルをデータ・セットにコピーする必要があります。デフォルトの DBRM データ・セット名は prefix.DBRMLIB.DATA です。ここで prefix は、ユーザーの TSO プロファイルで指定された高位修飾子です。通常、prefix は TSO におけるユーザー ID です。

DBRM データ・セットがまだ存在しない場合は、それを作成する必要があります。 DBRM データ・セットには、すべての SQL ステートメントを保持するスペースと、各ホスト変数名とヘッダー情報用の追加スペースが必要です。 ヘッダー情報の概算として、DBRM ごとに 2 つのレコード、SQL レコードごとに 20 バイト、ホスト変数ごとに 6 バイトが必要です。 DBRM の厳密なフォーマットについては、DBRM マッピング・マクロである、ライブラリー prefix.SDSNMACS の DSNXDBRM を参照してください。

以下の構文図は、DBRM ファイルを生成するためのオプションを記述しています。

構文図を読む構文図をスキップする
                   .-FALSE-.                           
>>- -generateDBRM--+-TRUE--+-- -outputDBRMPath--path-----------><

-generateDBRM TRUE|FALSE
パッケージを作成する代わりに DBRM ファイルを生成するかどうかを指定します。 generateDBRMTRUE である場合には、 デフォルトでは、StaticBinder ユーティリティーによって、CS、RR、RS、UR の各分離レベルごとに 1 つずつ、合計 4 つの DBRM ファイルが生成されます。 ただし、-isolationLevel オプションを指定した場合には、DBRM ファイルは 1 つしか生成できません。

生成された DBRM ファイルのルート名は、構成ユーティリティーの実行時に指定したルート・パッケージ名です。

デフォルトは FALSE です。

-outputDBRMPath path
生成された DBRM ファイルを保存するディレクトリーを指定します。 デフォルト値は、StaticBinder ユーティリティーの実行元のディレクトリーです。
-differenceOnlyTRUE|FALSE
StaticBinder ユーティリティーの実行対象の pureQueryXML ファイル内の対応するステートメント・セットのコレクション名、パッケージ名、および整合性トークンの値と一致するものを持つ DB2 パッケージを置き換えないことを指定します。

例えば、capture.pdqxml という名前の pureQueryXML ファイルに対して StaticBinder ユーティリティーを実行するとします。 このユーティリティーにより、パッケージ MYPKGA、MYPKGB、および MYPKGC が作成されます。 その後、ワークベンチを使用して capture.pdqxml 内のステートメント・セット MYPKGA を編集し、このファイルに対して、-cleanConfigure オプションを指定して (値としてはデフォルト値 FALSE を使用) Configure ユーティリティーを実行します。 セットが変更されたため、構成ユーティリティーは新規の整合性トークンをステートメント・セットに割り当てます。 MYPKGA の新しいバージョンをバインドするために capture.pdqxml に対して再び StaticBinder ユーティリティーを実行する際には、-differenceOnly TRUE を指定します。 ユーティリティーは MYPKGA のみを再バインドし、他の 2 つのパッケージの再バインドは行いません。

デフォルト値は FALSE です。
-grant "grantees(firstID,secondID,...)"
StaticBinder ユーティリティーが作成するパッケージに対する EXECUTE 特権を付与する対象の被認可者を括弧内にコンマで区切って示したリストを指定します。 このオプションを指定しなければ、StaticBinder ユーティリティーはこの特権を付与しません。
構文図を読む構文図をスキップする
                             .-,--------------------.          
                             V                      |          
>>- -grant-- "--grantees--(----+-authorization-ID-+-+--) - "---><
                               '-PUBLIC-----------'            

grantees
EXECUTE 特権を付与する対象の許可 ID のコンマ区切りリスト。 リストする許可 ID は必ず、使用する DB2 データベースで有効なものにしてください。

DB2 Database for Linux, UNIX, and Windows の場合: USER キーワード、GROUP キーワード、および ROLE キーワードを使用できます。 これらのキーワードについては、『GRANT (パッケージ特権) ステートメント』を参照してください。

DB2 for z/OS の場合: ROLE キーワードを使用できます。 このキーワードについては、『GRANT (パッケージ特権)』を参照してください。

制限: -generateDBRM オプションの値が TRUE である場合には、-grant オプションは使用できません。

-isolationLevel CS|RR|RS|UR
4 つの分離レベルごとに 1 つずつ DB2 パッケージまたは DBRM ファイルを生成するのではなく、特定の分離レベル用の単一の DB2 パッケージまたは DBRM ファイルを生成することを指定します。

分離レベルは、パッケージ内のすべての SQL ステートメントに適用されます。 IBM® Data Server Driver for JDBC and SQLJ の Connection.setTransactionIsolation() メソッドを使用して分離レベルを設定した場合は、pureQuery は静的に実行されたステートメントの分離レベルを無視します。

UR
分離レベルとして非コミット読み取りを指定します。
StaticBinder ユーティリティーは、構成ユーティリティーを実行したときに -forceSingleBindIsolation オプションを使用していない限り、作成されたパッケージまたは DBRM ファイルの名前に 1 を加えます。
CS
分離レベルとしてカーソル固定を指定します。
StaticBinder ユーティリティーは、構成ユーティリティーを実行したときに -forceSingleBindIsolation オプションを使用していない限り、作成されたパッケージまたは DBRM ファイルの名前に 2 を加えます。
RS
分離レベルとして読み取り固定を指定します。 読み取り固定では、アプリケーションによって読み取りおよび変更される行に関し、パッケージ内の SQL ステートメントの実行が、他のアプリケーション・プロセスから確実に分離されます。
StaticBinder ユーティリティーは、構成ユーティリティーを実行したときに -forceSingleBindIsolation オプションを使用していない限り、作成されたパッケージまたは DBRM ファイルの名前に 3 を加えます。
RR
分離レベルとして反復可能読み取りを指定します。
StaticBinder ユーティリティーは、構成ユーティリティーを実行したときに -forceSingleBindIsolation オプションを使用していない限り、作成されたパッケージまたは DBRM ファイルの名前に 4 を加えます。
-password password
データ・ソースに接続するために使用するパスワード。
-pureQueryXml pureQueryXML-file|pureQueryXML-file:base-package-name
パッケージとしてバインドする SQL ステートメントの複数または単一のセットが入っている pureQueryXML ファイルを指定します。 複数の値の指定が可能です。
pureQueryXML-file
pureQueryXML ファイルの名前。 例えば、C:¥directory¥captureFile.pdqxml などです。
このファイルの拡張子は、.pdqxml または .xml でなければなりません。 ファイルをアプリケーションのクラスパス内のリソースにするか、 ファイルへの絶対パスまたは相対パスを指定する必要があります。
pureQueryXML-file:base-package-name
pureQueryXML ファイルの名前およびバインドするパッケージのベース名。 例えば、C:¥directory¥captureFile.pdqxml:MYPKGA などです。

ファイルの拡張子は、.pdqxml または .xml でなければなりません。 ファイルをアプリケーションのクラスパス内のリソースにするか、 ファイルへの絶対パスまたは相対パスを指定する必要があります。

パッケージのベース名は、pureQueryXML ファイル内のパッケージを示す package エレメントの name 属性の値です。 ベース名は、次の 2 つの部分で構成されます。
  • ルート・パッケージ名
  • 複数のパッケージ名が必要な場合に Configure ユーティリティーがルート・パッケージ名に付加する任意の文字。 たとえば、あるステートメント・セット内の SQL ステートメントの数が Configure ユーティリティーの -sqlLimit オプションの値を超えたときに、このユーティリティーは複数のパッケージ名を作成します。
注: pureQueryXML ファイルを構成したときに Configure ユーティリティーの -forceSingleBindIsolation オプションを指定した場合、StaticBinder ユーティリティーはパッケージ名に整数を付加しません。 この整数は、パッケージ内のすべての SQL ステートメントに適用される分離レベルを表します。
-showDetails TRUE|FALSE
StaticBinder ユーティリティーで、生成する DB2 パッケージおよび処理する pureQueryXML ファイル内の SQL ステートメントに関する詳細情報を表示するかどうかを指定します。
デフォルト値は false です。
-statementBindError NOT_SET|MARK_INVALID|REMOVE
バインド・プロセスで pureQueryXML ファイル内の SQL ステートメントに関して SQL エラーが返された場合に StaticBinder ユーティリティーが その SQL ステートメントを処理する方法を指定します。 デフォルト値はありません。このオプションが設定されていない場合、StaticBinder ユーティリティーは、 バインド・プロセス中に SQL エラーを返した SQL ステートメントを検出時に報告します。 サポートされる値と、SQL ステートメントの処理方法について、次のリストで説明します。
NOT_SET
pureQueryXML ファイル内の SQL ステートメントが変更されないように指定します。 この値がデフォルト値です。
MARK_INVALID
バインドが試行された結果として SQL エラーが発生した場合に SQL ステートメントが無効であることを示すように pureQueryXML ファイルが更新されることを 指定します。 SQL ステートメントが含まれているステートメント・セットに対してバインド操作が完了した後で、SQL エラーと、 無効としてマークされた SQL ステートメントが表示されます。

以前に無効としてマークされた SQL ステートメントはレポートに表示されません。

Configure オプション -restoreInvalidSQLForce を使用すれば、無効としてマークされた SQL ステートメントをリストアできます。 オプション -removeInvalidSQL を使用すれば、ステートメントを削除できます。

REMOVE
バインドが試行された結果として SQL エラーが発生した場合に SQL ステートメントが pureQueryXML ファイルから削除されるように指定します。 SQL ステートメントが含まれているステートメント・セットに対してバインド操作が完了した後で、SQL エラーと、 削除された SQL ステートメントが表示されます。 以前に無効としてマークされた SQL ステートメントも削除されます。
注意:
MARK_INVALID 値または REMOVE 値とともにこのオプションを 使用すると、pureQueryXML ファイルが変更される可能性があります。 このユーティリティーはこのファイルを変更して、SQL ステートメントを無効としてマークしたり、SQL ステートメントをファイルから削除したりします。

MARK_INVALID または REMOVE とともに -statementBindError オプションが 指定される場合は、pureQueryXML ファイルは書き込み可能でなければなりません。 StaticBinder ユーティリティーでファイルを更新できない場合は、エラーが表示されて、ファイルは処理されません。

以下の項目は、無効な SQL ステートメントを StaticBinder ユーティリティーが検出できるかどうかに影響します。
  • StaticBinder -differenceOnly オプションを値 TRUE とともに指定する。 StaticBinder は、すべての SQL ステートメントをバインドしようとはしません。 StaticBinder ユーティリティーは、バインドの試行対象としないステートメント・セットにある無効な SQL ステートメントを検出します。
  • バインド・オプション SQLERROR (CONTINUE) または VALIDATE (RUN) を StaticBinder オプション -bindOptions とともに指定する。 どちらかの BIND オプションが指定されると、SQL エラーとしてラベル付けされるはずの DB2 診断メッセージが、 代わりに SQL 警告としてラベル付けされます。 診断で SQL 警告が報告されても、StaticBinder ユーティリティーは SQL ステートメントを無効なステートメントとしては認識しません。

pureQuery データ・アクセス・オブジェクト (DAO) インターフェース実装クラスの バインド時には、-statementBindError オプションはサポートされません。 実装クラスをバインドするために StaticBinder ユーティリティーが実行され、 値 MARK_INVALID または REMOVE とともにこのオプションが指定されると、 このユーティリティーは警告を表示し、クラスのバインドを試みません。

注: 無効な SQL ステートメントとは、バインドが試行されたときに SQL エラーを返すステートメントのことです。 ただし、データベース・オブジェクトを変更して、そのデータベース・オブジェクトを参照する SQL ステートメントが無効にならないようにすることはできます。 このような変更は、SQL ステートメントを実行するアプリケーションに影響を与える可能性があります。 例えば、ステートメントが参照する列の型定義が VARCHAR(20) から VARCHAR(100) に変更された場合は、そのステートメントは無効ではありません。
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 に書き込まれます。
-url connection-URL
データベースに接続するためのタイプ 4 JDBC URL。
名前付きパラメーター・マーカーを使用する SQL ステートメントをバインドする場合、データ・ソースへの接続を指定するときに enableNamedParameterMarkers プロパティーを値 1 で指定する必要があります。次の -url オプションの例では、testserver.test.com にある SAMPLE データベースに接続し、enableNamedParameterMarkers プロパティーを指定します。
-url jdbc:db2://localhost:50000/SAMPLE:enableNamedParameterMarkers=1;
-username user-ID
データ・ソースに接続するために使用するユーザー ID。
-verifyPackages DETAIL|SUMMARY
pureQueryXML ファイルに関連付けられた SQL ステートメント用に存在するパッケージおよび存在しないパッケージのレポートを StaticBinder ユーティリティーで生成するかどうかを指定します。 このオプションを使用した場合に、StaticBinder ユーティリティーはパッケージをバインドしません。

例えば、myApp.pdqxml という名前の pureQueryXML に対して構成ユーティリティーを実行したとします。 このユーティリティーを実行したときに、 -collection、-pkgVersion、および -rootPkgName オプションの値を指定し、ユーティリティーが pureQueryXML ファイルにこれらの値を保管しました。 このファイルの名前を指定して StaticBinder ユーティリティーを実行します。ユーティリティーによって DB2 パッケージが作成されます。

後から、StaticBinder ユーティリティーが pureQueryXML ファイルから作成したパッケージのリストを確認するとします。 ユーティリティーを実行する際に、値 DETAIL を指定して -verifyPackages オプションを使用し、再度ファイルの名前を指定できます。

-verifyPackages オプションは、pureQueryXML ファイルに対して構成ユーティリティーを実行して、そのファイルに対して StaticBinder ユーティリティーを実行した後に、そのファイルに対して再度構成ユーティリティーを実行して -collection、-pkgVersion、および -rootPkgName に別の値を指定していないことを前提に機能します。

StaticBinder ユーティリティーを最初に実行した後に myApp.pdqxml に対して構成ユーティリティーを実行して、 -collection、-pkgName、および -rootPkgName のいずれかの値を変更した場合には、StaticBinder ユーティリティーでは、これらのオプションの新しい値に一致するパッケージが検出されません。 StaticBinder ユーティリティーはレポートで、検索対象のパッケージが存在しないと報告します。

-collection、-pkgVersion、および -rootPkgName オプションの値が、StaticBinder ユーティリティーを前回実行したときと同じであれば、 ユーティリティーによってパッケージが検出されてリストされます。

このオプションは、-bindOptions オプションとともに指定できます。 ただし、StaticBinder ユーティリティーはパッケージをバインドしません。 パッケージを作成したときに -bindOptions オプションを使用してコレクションを指定した場合には、 このオプションのみを使用して、検証するパッケージのコレクションを指定してください。

DETAIL
-collection、-pkgVersion、および -rootPkgName の値に基づいた、以下の情報を説明するレポートを生成します。
  • 存在しないパッケージ。
  • 存在するパッケージ。レポートは、パッケージごとに名前、整合性トークン、タイム・スタンプ、および分離レベルをリストします。
  • 存在または存在しないパッケージの数。
SUMMARY
-collection、-pkgVersion、および -rootPkgName の値が与えられると、存在するパッケージおよび存在しないパッケージを列挙するレポートを生成します。
-validateXml TRUE|FALSE
pureQueryXML スキーマを使用する入力 pureQueryXML ファイルに対して XML スキーマの妥当性検査を実行するかどうかを指定します。この値が TRUE の場合、妥当性検査が実行されます。値が FALSE であるか、このオプションが指定されていない場合は、妥当性検査は実行されません。

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

pureQueryXML ファイルのスキーマの妥当性検査が失敗した場合は、そのファイル内のパッケージはバインドされません。ファイルの最初のスキーマの妥当性検査エラーおよびバインドの失敗が報告されます。

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

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

フィードバック