オプション・ファイルでは、pureQuery StaticBinder ユーティリティーで処理する pureQueryXML ファイル (複数可) と、kpureQueryXML ファイルの処理方法を StaticBinder ユーティリティーに通知するオプションがリストされます。 オプション・ファイルにリストされているすべての pureQueryXML ファイルに適用されるデフォルト・オプションを設定できます。 さらに、デフォルト・オプションをオーバーライドして、個別の pureQueryXML ファイルに固有の他のオプションを設定できるように、pureQueryXML ファイルにオプションを設定することもできます。
StaticBinder ユーティリティーを実行するコマンドでは、-optionsFile オプションで使用するファイルを指定することができます。
defaultOptions = -collection qual1 -traceFile C:\logs\staticbinder.txt -traceLevel ALL -url jdbc:db2://SRVR01:50000/DB01 -username user01 -password pass01 capture_sales.pdqxml = -collection qual2 capture_orders.pdqxml capture_employee.pdqxml = -url jdbc:db2://SRVR01:50001/DB02 -username user02 -password pass02この例では、defaultOptions で始まる行は、DB2 パッケージの修飾子およびデフォルトの接続 URL を指定します。 さらにその行では、メッセージをログに記録するファイルも指定します。 次の行は、デフォルト修飾子ストリングをオーバーライドする修飾子ストリングを使用して pureQueryXML ファイルを指定します。次の行は、すべてのデフォルト・オプションが適用される pureQueryXML ファイルを指定します。 最後の行は、異なるデータベースに対してバインドする pureQueryXML ファイルを指定します。
-pkgVersion "ver#1"
DB2 Database for Linux, UNIX, and Windows: ユーザーに SYSADM 権限があるものの、バインドを完了するための明示特権がない場合、DB2 データベース・マネージャーは明示的な DBADM 権限を自動的に付与します。ます。
このコマンドを使用すると、アプリケーションが含まれているアーカイブに対して StaticBinder ユーティリティーを実行できます。 アーカイブには、StaticBinder ユーティリティーに渡す pureQueryXML ファイルをリストした、拡張子 .bindProps の付いたオプション・ファイルが含まれていなければなりません。
>>-java--com.ibm.pdq.tools.StaticBinder-------------------------> (1) >-------- -url--jdbc--:--db2--:--//--server--+---------+--/--database-- -username--user-ID-- -password--password--> '-:--port-' >-- -archive----filename--+-.ear-+------------------------------> +-.jar-+ +-.war-+ '-.zip-' >--+- -bindOptions----"--string-of-bind-options--"--+---------------------------------------------------------+-+--> | | .-,--------------------. | | | | V | | | | '- -grant--"--grantees--(----+-authorization-ID-+-+--)--"-' | | '-PUBLIC-----------' | '-|--DBRM options--|-----------------------------------------------------------------------------------------' >--+------------------+--+--------------------------+-----------> '- -differenceOnly-' '- -isolationLevel--+-CS-+-' +-RR-+ +-RS-+ '-UR-' >--+---------------------+-- -showDetails--+-TRUE--+----------->< '-|--Trace options--|-' '-FALSE-'
pureQueryXML ファイルが 1 つしかない場合は、pureQueryXML ファイルの名前と、DB2 パッケージまたは DBRM ファイルの作成用のオプションを指定するためだけに、このコマンドを使用することを選択できます。
>>-java--com.ibm.pdq.tools.StaticBinder-------------------------> (1) >-------- -url--jdbc--:--db2--:--//--server--+---------+--/--database-- -username--user-ID-- -password--password--> '-:--port-' >-- -pureQueryXml--pureQueryXML-file----------------------------> >--+- -bindOptions----"--string-of-bind-options--"--+---------------------------------------------------------+-+--> | | .-,--------------------. | | | | V | | | | '- -grant--"--grantees--(----+-authorization-ID-+-+--)--"-' | | '-PUBLIC-----------' | '-|--DBRM options--|-----------------------------------------------------------------------------------------' >--+------------------+--+--------------------------+-----------> '- -differenceOnly-' '- -isolationLevel--+-CS-+-' +-RR-+ +-RS-+ '-UR-' >-- -showDetails--+-TRUE--+--+---------------------+----------->< '-FALSE-' '-|--Trace options--|-'
pureQueryXML ファイルが複数ある場合は、pureQueryXML ファイルの名前と、これらのファイルに基づく DB2 パッケージまたは DBRM ファイルの作成用のオプションを指定するために、コマンドとオプション・ファイルを使用します。 pureQueryXML ファイルが 1 つしかない場合でも、オプション・ファイルは使用できます。
>>-java--com.ibm.pdq.tools.StaticBinder-------------------------> (1) >-------- -url--jdbc--:--db2--:--//--server--+---------+--/--database-- -username--user-ID-- -password--password--> '-:--port-' >--+------------------+-- -optionsFile--file-name---------------> '- -differenceOnly-' >--+---------------------+------------------------------------->< '-|--Trace options--|-'
この構文図は、オプション・ファイルにリストしたすべての pureQueryXML ファイルに対して設定できるデフォルト・オプションを示しています。
>>-defaultOptions--=--------------------------------------------> (1) >-------- -url--jdbc--:--db2--:--//--server--+---------+--/--database-- -username--user-ID-- -password--password--> '-:--port-' >--+- -bindOptions----"--string-of-bind-options--"--+---------------------------------------------------------+-+--> | | .-,--------------------. | | | | V | | | | '- -grant--"--grantees--(----+-authorization-ID-+-+--)--"-' | | '-PUBLIC-----------' | '-|--DBRM options--|-----------------------------------------------------------------------------------------' >--+--------------------------+-- -showDetails--+-TRUE--+-------> '- -isolationLevel--+-CS-+-' '-FALSE-' +-RR-+ +-RS-+ '-UR-' >--+---------------------+------------------------------------->< '-|--Trace options--|-'
この構文図は、オプション・ファイルにリストした各 pureQueryXML ファイルに対して設定できるオプションを示しています。
>>-pureQueryXML-file--=-----------------------------------------> (1) >-------- -url--jdbc--:--db2--:--//--server--+---------+--/--database-- -username--user-ID-- -password--password--> '-:--port-' >--+- -bindOptions----"--string-of-bind-options--"--+---------------------------------------------------------+-+--> | | .-,--------------------. | | | | V | | | | '- -grant--"--grantees--(----+-authorization-ID-+-+--)--"-' | | '-PUBLIC-----------' | '-|--DBRM options--|-----------------------------------------------------------------------------------------' >--+--------------------------+-- -showDetails--+-TRUE--+------>< '- -isolationLevel--+-CS-+-' '-FALSE-' +-RR-+ +-RS-+ '-UR-'
StaticBinder ユーティリティーで DBRM ファイルが生成された後、それらをデータ・セットにコピーする必要があります。 デフォルトの DBRM データ・セット名は prefix.DBRMLIB.DATA です。ここで prefix は、ユーザーの TSO プロファイルで指定された高位修飾子です。通常、prefix は TSO におけるユーザー ID です。
DBRM データ・セットがまだ存在しない場合は、それを作成する必要があります。 DBRM データ・セットには、すべての SQL ステートメントを保持するスペースと、各ホスト変数名とヘッダー情報用の追加スペースが必要です。 ヘッダー情報の概算として、DBRM ごとに 2 つのレコード、SQL レコードごとに 20 バイト、ホスト変数ごとに 6 バイトが必要です。 DBRM の厳密なフォーマットについては、ライブラリー prefix.SDSNMACS の DBRM マッピング・マクロである DSNXDBRM を参照してください。
以下の構文図は、DBRM ファイルを生成するためのオプションを記述しています。
>>- -generateDBRM--+-TRUE--+-- -outputDBRMPath--path----------->< '-FALSE-'
生成される DBRM ファイルのルート名は、Configure ユーティリティーを実行するときに指定するルート・パッケージ名です。
制約事項:
>>-+------------------------+--+---------------------------+--->< '- -traceFile--file-name-' '- -traceLevel--+-OFF-----+-' +-ALL-----+ +-SEVERE--+ +-WARNING-+ +-INFO----+ +-CONFIG--+ +-FINE----+ +-FINER---+ '-FINEST--'
JDBC アプリケーションが作成する各接続に 1 つずつ、合わせて 2 つの pureQueryXML ファイルがあるとしましょう。ファイル名は capture_sales.pdqxml および capture_employee.pdqxml です。
これらは、pureQuery Configure ユーティリティーのトピックにある例で使用されたものと同じ pureQueryXML ファイルです。
これらの pureQueryXML ファイル内の SQL ステートメントを使用して DB2 パッケージを作成し、以下の値を StaticBinder ユーティリティーに渡すとします。
オプション | capture_sales.pdqxml | capture_employee.pdqxml |
---|---|---|
-url | jdbc:db2://sys01:500/DB2M | jdbc:db2://sys01:501/DB2Q |
-username | user01 | user02 |
-password | nQ6wCJkz | DpJR8fk2 |
-bindOptions | QUALIFIER myQual | QUALIFIER myQual |
java com.ibm.pdq.tools.StaticBinder -url jdbc:db2://sys01:500/DB2M -username user01 \ -password nQ6wCJkz -bindOptions "QUALIFIER myQual" -pureQueryXml C:\capture_files\capture_sales.pdqxml
java com.ibm.pdq.tools.StaticBinder -url jdbc:db2://sys01:501/DB2Q -username user02 \ -password DpJR8fk2 -bindOptions "QUALIFIER myQual" -pureQueryXml C:\capture_files\capture_employee.pdqxml
コマンドは、以下のようになります。
java com.ibm.pdq.tools.StaticBinder -optionsFile myOptionsFile.txt
オプション・ファイルは、ご使用のオペレーティング・システムがサポートする任意の名前と拡張子を付けることができ、以下のようになります。
defaultOptions = -bindOptions "QUALIFIER myQual" C:\capture_files\capture_sales.pdqxml = -url jdbc:db2://sys01:500/DB2M -username user01 -password nQ6wCJkz C:\capture_files\capture_employee.pdqxml = -url jdbc:db2://sys01:501/DB2Q -username user02 -password DpJR8fk2
DBRM オプションを bindOptions オプションの代わりに使うことにより、DBRM ファイルを生成することができます。
Configure ユーティリティーの例では、そのユーティリティーは .pdqxml ファイルを以下の値で更新しました。
Configure ユーティリティーのオプション | capture_sales.pdqxml | capture_employee.pdqxml |
---|---|---|
-collection | first | second |
-markDDLForBind | FALSE | FALSE |
-pkgVersion | 1.0 | 1.0 |
-rootPkgName | PK001S | PK005E |
-sqlLimit | 200 | 200 |
その例では、capture_sales.pdqxml には 450 の SQL DML ステートメントが含まれ、capture_employee.pdqxml には 400 SQL DML のステートメントと 50 の SQL DDL ステートメントが含まれることが示されました。
接尾部の文字 (A、B、C) は、sqlLimit の値により、StaticBinder が pureQueryXML ファイル用の別の DB2 パッケージを作成した箇所を示します。 接尾部の数値 (1、2、3、4) は、DB2 パッケージの分離レベルを示します。
DDL ステートメント DECLARE GLOBAL TEMPORARY TABLE は、取り込まれた SQL DML ステートメントのように、バインドされて静的に実行されます。
宣言されたグローバル一時表はアプリケーション固有であり、システム・カタログに永続レコードを持たず、それらの宣言停止を含むアプリケーションの後は持続しません。 DB2 バインド操作中に、いずれかの宣言されたグローバル一時表への参照を含むすべての SQL ステートメントは完全にはバインドされておらず、実行時に追加的にバインドされます。したがって、DECLARE GLOBAL TEMPORARY TABLE ステートメントの存在によって、実行時に付加的なマイナスの影響が生じることはありません。