静的に DB2 パッケージにバインドされる、組み込み SQL を使用するアプリケーションは、パフォーマンス、信頼性、セキュリティー、モニター機能、および管理の点で最初から優れています。
StaticBinder ユーティリティーを実行する前に、pureQuery Generator ユーティリティーを実行して、バインドする SQL ステートメントが含まれるインターフェースのインプリメンテーション・クラスを生成します。pureQuery Generator ユーティリティーを実行すると、静的 DB2 パッケージを作成するために必要なすべての情報が収集されて、生成されたインプリメンテーション・クラスに格納されます。この情報には、SQL ステートメントに関する情報と、適用可能なすべてのデータ型についての情報が、 Java クラス定義からと、ターゲット・データベースの列またはパラメーター・メタデータからの両方について含まれています。またこの情報には、DB2 パッケージのルート・パッケージ名と、オプションとしてコレクション ID およびバージョンが含まれます。
StaticBinder ユーティリティーは、DB2 パッケージの作成とバインド時にインプリメンテーション・クラスからこの情報を読み取ります。StaticBinder ユーティリティーを実行する際に、読み取り元のインプリメンテーション・クラス、またはそうしたクラスに対応するインターフェースをコマンド行から指定できます。オプション・ファイルを使用する場合、1 つ以上のインターフェースを指定できます。StaticBinder ユーティリティーは、対応するインプリメンテーション・クラスから情報を読み取ります。
オプション・ファイルでは、pureQuery StaticBinder ユーティリティーで処理するインターフェース (複数可) と、インターフェースの処理方法を StaticBinder ユーティリティーに通知するオプションがリストされます。 オプション・ファイルにリストされているすべてのインターフェースに適用されるデフォルト・オプションを設定できます。 さらに、デフォルト・オプションをオーバーライドして、個別のインターフェースに固有の他のオプションを設定できるように、インターフェースにオプションを設定することもできます。
StaticBinder ユーティリティーを実行するコマンドでは、-optionsFile オプションで使用するファイルを指定することができます。
defaultOptions = -collection qual1 -traceFile C:\logs\staticbinder.txt -traceLevel ALL -url jdbc:db2://SRVR01:50000/DB01 -username user01 -password pass01 com.myCompany.MyInterfaceA = -collection qual2 com.myCompany.MyInterfaceB com.myCompany.MyInterfaceC = -url jdbc:db2://SRVR01:50001/DB02 -username user02 -password pass02この例では、defaultOptions で始まる行は、DB2 パッケージの修飾子およびデフォルトの接続 URL を指定します。さらにその行では、メッセージをログに記録するファイルも指定します。 次の行は、デフォルト修飾子をオーバーライドする修飾子を使用してインターフェースを指定します。次の行は、すべてのデフォルト・オプションが適用されるインターフェースを指定します。 最後の行は、異なるデータベースに対してバインドするインターフェースを指定します。
-pkgVersion "ver#1"
DB2 Database for Linux, UNIX, and Windows: ユーザーに SYSADM 権限があるものの、バインドを完了するための明示特権がない場合、DB2 データベース・マネージャーは明示的な DBADM 権限を自動的に付与します。ます。
このコマンドを使用すると、アプリケーションが含まれているアーカイブに対して StaticBinder ユーティリティーを実行できます。 アーカイブは StaticBinder ユーティリティーに提供するインターフェースとインプリメンテーション・クラスを含んでいる必要があります。インターフェースとインプリメンテーション・クラスをリストする、拡張子が .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-' >--+---------------------+------------------------------------->< '-|--Trace options--|-'
このコマンドを使用すると、インターフェースまたはインプリメンテーション・クラスの名前を指定したり、DB2 パッケージまたは DBRM ファイルを作成するためのオプションを指定したりできます。
>>-java--com.ibm.pdq.tools.StaticBinder-------------------------> (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--|-----------------------------------------------------------------------------------------' >--+------------------+--+--------------------------+-----------> '- -differenceOnly-' '- -isolationLevel--+-CS-+-' +-RR-+ +-RS-+ '-UR-' >--+---------------------+--------------------------------------> '-|--Trace options--|-' .-,--------------------. V | >--+- -impl----implementation-class-+--------+----------------->< | .-,----------------------. | | V | | '- -interface----Java-package.interface-+-'
以下のコマンドとオプション・ファイルを使用すると、インターフェース名を指定したり、こうしたそれぞれのインターフェースに基づく DB2 パッケージまたは DBRM ファイルを作成するためのオプションを指定したりできます。
>>-java--com.ibm.pdq.tools.StaticBinder-------------------------> (1) >-------- -url--jdbc--:--db2--:--//--server--+---------+--/--database-- -username--user-ID-- -password--password--> '-:--port-' >-- -optionsFile--file-name--+---------------------+----------->< '-|--Trace options--|-'
この構文図は、オプション・ファイルにリストされているすべてのインターフェースに設定できるデフォルト・オプションを示しています。
>>-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--|-----------------------------------------------------------------------------------------' >--+--------------------------+--+---------------------+------->< '- -isolationLevel--+-CS-+-' '-|--Trace options--|-' +-RR-+ +-RS-+ '-UR-'
この構文図は、オプション・ファイルにリストされている各インターフェースに設定できるオプションを示しています。
>>-Java-package.interface--=------------------------------------> (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--|-----------------------------------------------------------------------------------------' >--+--------------------------+-------------------------------->< '- -isolationLevel--+-CS-+-' +-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 ファイルのルート名は、Generator ユーティリティーを実行するときに指定するルート・パッケージ名です。 この名前が 7 文字より長い場合、StaticBinder ユーティリティーは例外をスローします。
制約事項:
>>-+------------------------+--+---------------------------+--->< '- -traceFile--file-name-' '- -traceLevel--+-OFF-----+-' +-ALL-----+ +-SEVERE--+ +-WARNING-+ +-INFO----+ +-CONFIG--+ +-FINE----+ +-FINER---+ '-FINEST--'