設定される特性は、pureQueryXML ファイルに追加されます。pureQueryXML ファイル内にある SQL ステートメントを DB2 パッケージにバインドするために StaticBinder ユーティリティーを実行する場合、StaticBinder ユーティリティーはこれらの特性を読み取ります。
このトピックには以下のセクションが含まれています。
図で使用される規則を理解するには、構文図の読み方を参照してください。
Configure ユーティリティーが pureQueryXML ファイルに対して行った更新を確認する場合、ファイルをエディターで開くことができます。
この設定を使用して、pureQueryXML ファイルの SQL ステートメントから作成された DB2 パッケージを継続します。
pureQuery Runtime により DB2 データベースに対して実行されている SQL ステートメントをキャプチャーした場合に、SQL ステートメントと共に一部の DB2 特殊レジスター値が追跡およびキャプチャーされます。キャプチャーされた特殊レジスター値は共通の設定値です。この値が変更されると、SQL ステートメントにより返されるデータに影響を与えることがあります。
入力 pureQueryXML ファイルにキャプチャーされた特殊レジスターの動作を、Configure ユーティリティーの動作サマリーの一部として表示するには、-showDetails オプションを true に設定してください。
オプション・ファイルは、pureQuery 構成ユーティリティーで処理する単一または複数の pureQueryXML ファイル、および pureQueryXML ファイルを処理する方法を構成ユーティリティーに指示するオプションをリストします。 オプション・ファイルにリストしたすべての pureQueryXML ファイルに適用するデフォルト・オプションを設定できます。 また、デフォルト・オプションをオーバーライドするために pureQueryXML ファイルのオプションを設定したり、個々の pureQueryXML ファイルに固有の他のオプションを設定したりすることもできます。
構成ユーティリティーを実行するコマンドでは、-optionsFile オプションを指定して、使用するファイルを指定できます。
defaultOptions = -collection COLL01 -traceFile C:¥logs¥configure.txt -traceLevel ALL 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"
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-. | '- -showDetails--+-TRUE--+-' >--+---------------------------------------+--------------------> | .-FALSE-. | '- -forceSingleBindIsolation--+-TRUE--+-' >--+------------------------+-----------------------------------> | .-100----. | '- -sqlLimit--+-number-+-' >--+--------------------------------------+---------------------> '- -removeSQLInactiveForDays----days---' >--+---------------------------------------+--------------------> '- -setPreStatusOfAllPkgs--+-AUTO-----+-' +-FINAL----+ '-REQUIRED-' >--+---------------------------------+--------------------------> '- -setPostStatusOfAllPkgs--FINAL-' >--+-----------------------------------------+------------------> | .-FALSE-. | '- -groupSQLBySpecialRegisters--+-TRUE--+-' >--+-------------------------------------------+----------------> | .------------------. | | | .-|------. | | | V V | | | '- -groupSQLByStrings----(----string-+--)-+-' >--+--------------------------+--+-----------------------+------> | .-FALSE-. | | (2) | '- -validateXml--+-TRUE--+-' '-| Trace options |-----' >-- -pureQueryXml--pureQueryXML-file--+--------+--------------->< '- -help-'
pureQueryXML ファイルが複数ある場合は、pureQueryXML ファイルの名前と、DB2 パッケージ用のオプションを指定するために、コマンドとオプション・ファイルを使用します。pureQueryXML ファイルが 1 つしかない場合でも、コマンドとオプション・ファイルは使用できます。
>>-java--com.ibm.pdq.tools.Configure----------------------------> >-- -optionsFile--file-name--+-----------------------+--------->< | (1) | '-| Trace options |-----'
この構文図は、オプション・ファイルにリストしたすべての 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-. | '- -showDetails--+-TRUE--+-' >--+---------------------------------------+--------------------> | .-FALSE-. | '- -forceSingleBindIsolation--+-TRUE--+-' >--+------------------------+-----------------------------------> | .-100----. | '- -sqlLimit--+-number-+-' >--+--------------------------------------+---------------------> '- -removeSQLInactiveForDays----days---' >--+---------------------------------------+--------------------> '- -setPreStatusOfAllPkgs--+-AUTO-----+-' +-FINAL----+ '-REQUIRED-' >--+---------------------------------+--------------------------> '- -setPostStatusOfAllPkgs--FINAL-' >--+-----------------------------------------+------------------> | .-FALSE-. | '- -groupSQLBySpecialRegisters--+-TRUE--+-' >--+-------------------------------------------+----------------> | .------------------. | | | .-|------. | | | V V | | | '- -groupSQLByStrings----(----string-+--)-+-' >--+--------------------------+--+-----------------------+----->< | .-FALSE-. | | (2) | '- -validateXml--+-TRUE--+-' '-| Trace options |-----'
この構文図は、オプション・ファイルにリストした各 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-. | '- -showDetails--+-TRUE--+-' >--+---------------------------------------+--------------------> | .-FALSE-. | '- -forceSingleBindIsolation--+-TRUE--+-' >--+------------------------+-----------------------------------> | .-100----. | '- -sqlLimit--+-number-+-' >--+--------------------------------------+---------------------> '- -removeSQLInactiveForDays----days---' >--+---------------------------------------+--------------------> '- -setPreStatusOfAllPkgs--+-AUTO-----+-' +-FINAL----+ '-REQUIRED-' >--+---------------------------------+--------------------------> '- -setPostStatusOfAllPkgs--FINAL-' >--+-----------------------------------------+------------------> | .-FALSE-. | '- -groupSQLBySpecialRegisters--+-TRUE--+-' >--+-------------------------------------------+----------------> | .------------------. | | | .-|------. | | | V V | | | '- -groupSQLByStrings----(----string-+--)-+-' >--+--------------------------+-------------------------------->< | .-FALSE-. | '- -validateXml--+-TRUE--+-'
DB2 for z/OS のみが行セット・カーソルを使用し、行セット・カーソルは IBM Data Server Driver for JDBC and SQLJ のプロパティーで行セット・カーソルの使用が指定されている場合に使用されます。 別のタイプのデータ・ソースから取り込んだ場合、または行セット・カーソルを使用可能に設定せずに取り込んだ場合には、 取り込まれるステートメントでは行セット・カーソルは使用されません。
前方スクロール・カーソルで行セット・カーソルが使用されない場合に、タイプ 4 接続では同じようなメカニズムを内部で使用して、ネットワーク・トラフィックを最小化できます。
このオプションには、以下の 4 つの値のいずれかを指定します。
以下の条件のいずれかに当てはまる場合には、このオプションを使用する必要はありません。
pureQuery は、以下の条件のいずれかが満たされると、ステートメントを更新可能と見なします。
行セット・カーソルがサポートされていないデータ・ソースに対してステートメントを静的に実行した場合には、 pureQuery は、行セット・カーソルを使用するように指定したいずれのステートメントでも行セット・カーソルを使用しようとしません。
このオプションを指定しなければ、デフォルトでは、ステートメントを取り込んだときに IBM Data Server Driver for JDBC and SQLJ が行セット・カーソルを使用したステートメントで pureQuery は行セット・カーソルを使用します。
処理中、すべての SQL ステートメントは、指定されたオプション (sqlLimit、groupSQLByString、groupSQLBySpecialRegister など) に応じて、いくつかのステートメント・セットとして編成されます。 出力ファイルのステートメント・セットは、入力ファイルのステートメント・セットとは異なる場合があります。
-rootPkgName オプションに値を指定する必要があります。
これはデフォルト値です。-rootPkgName オプションに値を指定する必要があります。
名前の付いていないステートメント・セットでは、指定されたオプションがすべて構成により適用されます。
configureStatus が REQUIRED に設定されている名前付きのステートメント・セットでは、-collection、-pkgVersion、-forceSingleBindIsolation、および -markDDLForBind といった一部のオプションが適用されます。整合性トークンが更新されます。
configureStatus フラグが AUTO に設定されている名前付きのステートメント・セットでは、構成ユーティリティーによりステートメント・セットを変更する必要があると確認された場合に限り、構成によりオプションが適用されます。ステートメント・セットが変更されない場合、整合性トークンは更新されません。
configureStatus フラグが FINAL に設定されている名前付きのステートメント・セットでは、ステートメント・セットに問題が見つかった場合に、構成ユーティリティーによりエラーが表示されます。エラーとしては、セクション番号が昇順になっていない場合、また、位置更新ステートメントが SELECT ステートメントに関連付けられていない場合などが含まれます。 ステートメント・セットからステートメントを削除する必要がある場合は、構成ユーティリティーにより警告が表示されます。例えば、-removeSQLInactiveForDays オプションが指定されており、ステートメントのタイム・スタンプが削除条件と一致した場合に、ステートメント・セットからステートメントが削除されることがあります。 ステートメントと関連付けられている特殊レジスター値が変更された場合に、そのステートメントが別のステートメント・セットに移動されることがあります。
-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 オプションを使用しないでください。
有効な値は、TRUE および FALSE (大/小文字を区別しないストリング) です。デフォルト値はありません。
このオプションを指定しなかった場合には、 pureQueryXML ファイルの名前がないステートメント・セット内の DDL ステートメントのいずれかで isBindable が TRUE であるかどうかを構成ユーティリティーは検査します。 少なくとも 1 つの DDL ステートメントの isBindable が TRUE であれば、構成ユーティリティーは、DDL ステートメントを単一の名前付き DDL ステートメント・セットに結合するときに、 DDL ステートメントの isBindable 属性を TRUE に設定します。
StaticBinder ユーティリティーは、DDL ステートメント・セットの isBindable 属性の値が TRUE であることを検出すると、 そのステートメント・セット内の、isBindable 属性の値が TRUE であるステートメントをすべてバインドしようとします。
DB2 では複数のバージョンのパッケージを同時に存在させることができるため、古いバージョンのパッケージを置換することなく、同名の新しいパッケージをバインドできます。 新しいパッケージで問題が発生した場合には、そのパッケージの古いバージョンを使用できます。
このオプションを指定しなかった場合には、それ以降のバインドで作成されるデータベース・パッケージは、バージョンなしで作成されます。
実行時のバージョンの検査は、バージョン名ではなく整合性トークンに基づいて行われます。
package-name-stem は、使用している DB2 データベースで設定された制約の範囲内でなければなりません。
pureQuery StaticBinder ユーティリティーを使用して、 DB2 パッケージを作成するのではなく、DBRM ファイルを生成する場合には、 package-name-stem は、長さが 6 文字以下の大文字にする必要があります。 pureQueryXml ファイルに DDL ステートメントが含まれているか、 (sqlLimit で指定された) パッケージ当たりのステートメント数に到達している場合に、 構成ユーティリティーによって、名前の語幹に文字が追加されます。 StaticBinder ユーティリティーを使用して DBRM ファイルを生成し、package-name-stem、構成ユーティリティーのアクティビティーによる追加文字、および分離レベルを組み合わせたストリングが 8 文字より長い場合には、StaticBinder ユーティリティーは例外をスローします。
true に設定すると、Configure ユーティリティーにより、入力 pureQueryXML ファイルにキャプチャーされた特殊レジスターの動作が動作サマリーの一部として表示されます。
デフォルト値は 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--'
例えば、days 変数が 5 であり、現在日付が 11/25 (11 月 25 日) である場合、タイム・スタンプが 11/20 (11 月 20 日) かそれより前である SQL ステートメントは書き込まれません。
タイム・スタンプのない SQL ステートメントは出力ファイルに書き込まれます。例えば、前のバージョンの pureQueryXML ファイルが入力ファイルである場合、SQL ステートメントにはタイム・スタンプがありません。前のバージョンの pureQueryXML ファイル (バージョン 3 以前) では、このオプションは無視され、すべての SQL ステートメントが出力ファイルに書き込まれ、メッセージが表示されます。
メッセージは、出力 pureQueryXML ファイルに書き込まれない SQL ステートメントのログ・ファイルに書き込まれます。-showDetails オプションが true である場合、出力ファイルに書き込まれていないステートメントがすべて表示されます。
-cleanConfigure オプションが TRUE に設定されている場合、-setPreStatusOfAllPkgs オプションは無視されます。メッセージはログに記録されません。
-groupSQLBySpecialRegisters オプションと -groupSQLByStrings オプションの両方を使用してステートメント・セットを作成する場合、 ステートメントは、まず、特殊レジスター値によりグループ化されます。 特殊レジスターに基づく各グループに対し、-groupSQLByStrings オプションにより指定された値に基づいて SQL ステートメントがグループ化されます。このグループ化が完了すると、必要に応じて -sqlLimit に基づくグループ化が実行されます。 作成されたステートメント・セットに名前が付けられます。
括弧で囲まれた各ストリングを使用して、SQL ステートメントの検索とステートメント・セットへのグループ化がなされます。 ストリングを縦線 ( | ) で区切ることにより、複数のストリングを使用して SQL ステートメントをステートメント・セットに割り当てることができます。同じストリングが複数回出現するか、ストリングが別のストリングのサブストリングであった場合、ログに警告が記録されます。
SQL ステートメントにストリングが含まれる場合、そのステートメントはステートメント・セットに割り当てられます。 複数のストリングを使用してステートメント・セットを作成した場合は、そのいずれかのストリングを含む SQL ステートメントがステートメント・セットに割り当てられます。
-groupSQLBySpecialRegisters オプションと -groupSQLByStrings オプションの両方を使用してステートメント・セットを作成する場合、 ステートメントは、まず、特殊レジスター値によりグループ化されます。 特殊レジスターを使用する各グループ内で、SQL ステートメントが -groupSQLByStrings オプションの指定値に基づいてグループ化されます。 このグループ化が完了すると、必要に応じて -sqlLimit が適用され、作成されたステートメント・セットに名前が付けられます。
pureQueryXML ファイルに名前付きのパッケージと名前の付けられていないパッケージの両方が含まれており、-cleanConfigure オプションが FALSE に設定されている場合、名前の付けられていないパッケージのみがグループ化され、名前付きパッケージのグループは変更されません。-cleanConfigure オプションが TRUE の場合は、名前付きおよび名前の付けられていないすべてのパッケージの SQL ステートメントがグループ化されます。
入力ファイルごとに、XML スキーマの妥当性検査の成功または失敗が確認され、報告されます。1 つの入力ファイルで検査に失敗しても、構成処理は停止せず、次のファイルが処理されます。
pureQueryXML ファイルがスキーマの妥当性検査に失敗した場合は、そのファイルの構成操作は完了されません。最初のスキーマの妥当性検査エラー、およびファイルの構成に失敗したことが報告されます。
現行リリースまたは前のバージョン (バージョン 4 または 3) の pureQueryXML ファイルについてのみ妥当性検査が実施されます。 それより前のバージョンの pureQueryXML ファイルが検出された場合、そのファイルについては妥当性検査が実行されません。
妥当性検査エラーが、Configure ユーティリティーの出力の一部として印刷されます。
2 つの pureQueryXML ファイル (pureQuery 以外の API アプリケーションで作成する接続ごとに 1 つずつ) があるとします。ファイル名は、capture_sales.pdqxml (450 の SQL ステートメントを含む) および capture_employee.pdqxml (これも 450 の SQL ステートメントを含むが、その 50 は DDL ステートメント) であるとします。
これらのファイルに対して、ユーティリティーの初回実行時に、以下の値を 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 |
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
コマンドは、以下のようになります。
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
capture_sales.pdqxml_1.0
capture_employee.pdqxml_1.0
capture_employee.ddl
SELECT * FROM TABLE3 SELECT * FROM TABLE2 SELECT * FROM TABLE1
Statement set 1: SELECT * FROM TABLE3 Statement set 2: SELECT * FROM TABLE2 Statement set 3: SELECT * FROM TABLE1
Statement set 1: SELECT * FROM TABLE1 Statement set 2: SELECT * FROM TABLE2 SELECT * FROM TABLE3
Statement set 1: SELECT * FROM TABLE1, SELECT * FROM TABLE2 Statement set 2: SELECT * FROM TABLE3
複数のステートメント・セット定義で同じ表名を使用することは推奨されておらず、警告メッセージがログに記録されます。