使用者の手引き

アプリケーションとユーティリティーのバインド

組み込み SQL を使用して開発されたアプリケーション・プログラムは、それが作動するときに使用する各データベースとバインドされていなければなりません。 コマンド・センターおよびクライアント構成アシスタントが使用可能なプラットフォームでは、これらの機能を使用してこれを行うことができます。

バインドは、各データベースにつき、アプリケーションごとに 1 度実行されなければなりません。 バインド・プロセスの間に、データベース・アクセス・プランは、実行される各 SQL ステートメントごとに保管されます。 これらのアクセス・プランは、アプリケーション開発者によって提供され、(プリコンパイルの間に作成された) バインド・ファイル に入っています。 バインドとは、ホストまたは AS/400 データベース・サーバーによりそれらのバインド・ファイルを処理するプロセスを指します。 バインドの詳細については、アプリケーション開発の手引き を参照してください。

DB2 コネクトで提供されているいくつかのユーティリティーは組み込み SQL を使って開発されているため、ホストまたは AS/400 データベース・サーバ ーにバインドするまでそれらをシステムで使用することはできません。表 4 でリストされている DB2 コネクト・ユーティリティ ーおよ びインターフェースを使用しない場合、それらを各ホストまたは AS/400 デ ータベース・サーバーにバインドする必要はありません。これらのユーティリティーに必要なバインド・ファイルのリストは、次のファイルに含まれています。

ddcsmvs.lst
MVS または OS/390 用

ddcsvse.lst
VSE 用

ddcsvm.lst
VM 用

ddcs400.lst
OS/400 用

これらのファイルの 1 つをデータベースにバインドすることは、個々のユーティリティーをそのデータベースへバインドすることになります。

DB2 コネクト エンタープライズ・エディション がインストールされている場合は、それぞれのクライアント・プラットフォーム・タイプ から DB2 コネクト・ユーティリティーを各ホストまたは AS/400 データベース・サーバーにバインドしないと、 それらをシステムで使用することはできません。

たとえば、10 の OS/2 クライアントと、10 の Windows クライアントと、 そして 10 の AIX クライアントがそれぞれ、DB2 コネクト エンタープライズ・エディション (Windows NT 版) サーバー経由 で DB2 ユニバーサル・データベース (OS/390 版) に接続している場合は、次のようにします。

  1. ddcsmvs.lst を Windows クライアントの 1 つからバインドします。
  2. ddcsmvs.lst を OS/2 クライアントの 1 つからバインドします。
  3. ddcsmvs.lst を AIX クライアントの 1 つからバインドします。
  4. ddcsmvs.lst を DB2 コネクト・サーバーからバインドします。

注:これは、すべてのクライアントが同じサービス・レベルにあることを前提としています。 そうでない場合、特定のサービス・レベルの各クライアントからバインドする必要があります。 DB2 バージョン 2.1 以前のクライアントがある場合は、付録 E, バック・レベル・クライアント用ユーティリティーのバインドを参照してください。

DB2 コネクト・ユーティリティーに加えて、組み込み SQL を使用する その他 のアプリケーションについても、その作業のときに使用する各データベース へバインドする必要があります。バインドされていないアプリケーションは、実行する時、通常は SQL0805N エラー・メッセージを出します。 バインドを必要とするすべてのアプリケーションについて追加的なバインド・リスト・ファイルを作成したいときがあるかもしれません。

バインド先のホストまたは AS/400 データベース・サーバーごとに、以下の手順を実行します。

  1. ホストまたは AS/400 データベース・サーバー管理システムに対して十分な権限があることを確認します。

    MVS または OS/390
    必要な許可は以下のとおりです。
    • SYSADM または
    • SYSCTRL または
    • BINDADD および CREATE IN COLLECTION NULLID

    注:BINDADD および CREATE IN COLLECTION NULLID 特権は、パッケージがまだない場合、たとえば、はじめてパッケージを作成するときにのみ十分な権限であるといえます。

    パッケージがすでに存在しており、それらを再度バインドしている場合は、タスクを完成させるために必要な権限は、誰がオリジナル・バインドを行ったかにかかってきます。

    A もし同一人がオリジナル・バインドを行い、再度のバインドも行っている場合は、上に挙げた権限のどれでも有することになり、バインドを完了させることができます。

    B 最初のバインドを行ったのとは違う人が、 2 番目 のバインドを行う場合は、バインドを完了するのに SYSADM または SYSCTRL 権限が必要です。BINDADD および CREATE IN COLLECTION NULLID 権限を有するだけでは、バインドを完了させることができません。 ただし、SYSADM または SYSCTRL 権限のいずれかがあれば、パッケージの作成は可能です。 この状況では、置き換えようとする既存のパッケージのおのおのについて、BIND 特権が必要になります。

    VSE または VM
    DBA 権限が必要です。 バインド・コマンドについて GRANT オプショ ンを使用しようとする場合 (各 DB2 コネクト・パッケージに対するアク セス 権を個別に付与することを避けるために)、 NULLID ユーザー ID は、以下の 表についての権限を他のユーザーに付与する権限を持たなければなりません 。
    • system.syscatalog
    • system.syscolumns
    • system.sysindexes
    • system.systabauth
    • system.syskeycols
    • system.syssynonyms
    • system.syskeys
    • system.syscolauth

    VSE または VM システムでは、次の命令を発行することができます。

       grant select on table to nullid with grant option
    

    OS/400
    NULLID コレクションにある *CHANGE 権限またはそれ以上の権限。
  2. 以下と同様のコマンドを発行します。
       db2 connect to DBALIAS user USERID using PASSWORD
       db2 bind path@ddcsmvs.lst blocking all
             sqlerror continue messages ddcsmvs.msg grant public
       db2 connect reset
    

    ここで、DBALIASUSERID、および PASSWORD は ホストまたは AS/400 のデータベース・サーバーに適用されます。 ddcsmvs.lst は MVS 用のバインド・リスト・ファイル、path は バインド・リスト・ファイルのロケーションです。

    たとえば、drive:\sqllib\bnd\ はすべての Intel オペレーティング・システムに、 INSTHOME/sqllib/bnd/ はすべての UNIX オペレーティング・システムに適用されます。 ここで、drive は DB2 コネクトがインストールされている論理ドライブ、 INSTHOME は DB2 コネクト・インスタンスのホーム・ディレクトリーです。

    bind コマンドの grant オプションを使用することにより、 PUBLIC に対し、または特定のユーザー名またはグループ ID に対し、EXECUTE 特権を付与することができます。 bind コマンドの grant オプションを使用しない 場合は、GRANT EXECUTE (RUN) を個別に与えなければなりません。

    バインド・ファイルについてのパッケージ名を見つけるには、次のコマンドを入力します。

      ddcspkgn @bindfile.lst
    

    以下に例を示します。

       ddcspkgn @ddcsmvs.lst
    

    出力は次のようになります。

                                                                          
     Bind File                      Package Name
     ------------------------------ ------------------------------        
     f:\sqllib\bnd\db2ajgrt.bnd     SQLAB6D3
                                                                          
    

    参照のために、表 4 には、DB2 コネクトの各種構成要素で使用されるバインド・ファイルおよびパッケージ名が示されています。 ある場合には、異なるオペレーティング・システムでは異なるバインド・ファイルおよびパッケージが使用されています。


    表 4. バインド・ファイルおよびパッケージ
    構成要素 バインド・ ファイル パッケージ MVS または OS/390 VSE VM OS/400
    バインダー (GRANT バインド・オプションで使用される) db2ajgrt.bnd sqlabxxx あり あり あり あり
    DB2 コール・レベル・インターフェース
    分離レベル CS db2clics.bnd sqll1xxx あり あり あり あり
    分離レベル RR db2clirr.bnd sqll2xxx あり あり あり あり
    分離レベル UR db2cliur.bnd sqll3xxx あり あり あり あり
    分離レベル RS db2clirs.bnd sqll4xxx あり あり あり あり
    分離レベル NC db2clinc.bnd sqll5xxx なし なし なし あり
    MVS 表名の使用 db2clims.bnd sqll7xxx あり なし なし なし
    OS/400 表名の使用 (OS/400 3.1 またはそれ以降) db2clias.bnd sqllaxxx なし なし なし あり
    VSE/VM 表名の使用 db2clivm.bnd sqll8xxx なし あり あり なし
    コマンド行プロセッサー
    分離レベル CS db2clpcs.bnd sqlc2xxx あり あり あり あり
    分離レベル RR db2clprr.bnd sqlc3xxx あり あり あり あり
    分離レベル UR db2clpur.bnd sqlc4xxx あり あり あり あり
    分離レベル RS db2clprs.bnd sqlc5xxx あり あり あり あり
    分離レベル NC db2clpnc.bnd sqlc6xxx なし なし なし あり
    REXX
    分離レベル CS db2arxcs.bnd sqla1xxx あり あり あり あり
    分離レベル RR db2arxrr.bnd sqla2xxx あり あり あり あり
    分離レベル UR db2arxur.bnd sqla3xxx あり あり あり あり
    分離レベル RS db2arxrs.bnd sqla4xxx あり あり あり あり
    分離レベル NC db2arxnc.bnd sqla5xxx なし なし なし あり
    ユーティリティー
    エクスポート db2uexpm.bnd sqlubxxx あり あり あり あり
    インポート db2uimpm.bnd sqlufxxx あり あり あり あり

    DB2 コネクトの場合にこれらの値を判別するには、次のよう に ddcspkgn ユーティリティーを実行します。

       ddcspkgn @ddcsmvs.lst
    

    任意に、このユーティリティーを使用して、個々のバインド・ファイルのパッケージ名を判別することができます。たとえば、次のようにします。

       ddcspkgn bindfile.bnd
    

    DB2 (MVS/ESA 版) システムが APAR PN60988 をインストール済みである (またはそれがバージョン 3 リリース 1 以降のものである) 場合、 分離レベル NC 用のバインド・ファイルを ddcsmvs.lst ファイルに追加することができます。

    バインド・オプションについて詳しくは、コマンド解説書 を参照してください。

    注:

    1. バインド・オプション sqlerror continue は必ず使用しなければなりません。 ただし、DB2 ツールやコマンド行プロセッサーを使ってアプリケーションをバインドする場合、 このオプションは自動的に指定されます。 このオプションを指定すると、バインド・エラーが警告に変わります。 それで、エラーのあるファイルをバインドしても、やはりパッケージを作成することになります。 言い換えると、別の SQL 構文が無効であると特定のサーバー処理系がフラグを付ける場合でさえ、複数のサーバーに対して 1 つのバインド・ファイルを使用することができます。 そのため、特定のホストまたは AS/400 データベース・サーバーに対して任意のリスト・ファイル ddcsxxx.lst をバインドする場合、 警告が出されることがあります。 たとえば、DB2 (VM 版) に対してバインドすると、DB2 (VM 版) はカーソルが "WITH HOLD" と宣言される ことを許可しないため、非常に多くの警告メッセージが出されます。

    2. DB2 コネクト経由で DB2 ユニバーサル・データベースに接続する場合、 バインド・リスト db2ubind.lst を使用してください。 sqlerror continue はホストまたは AS/400 データベース・サーバーに接続するときだけ有効なので指定しないでください。 また、DB2 ユニバーサル・データベースに接続する場合は、DB2 コネクトではなく DB2 で提供される DB2 クライアントを使用するようにお勧めします。
  3. 各アプリケーションまたはアプリケーションのリストをバインドするには、類似のステートメントを使用します。
  4. DB2 の以前のリリースからのリモート・クライアントがある場合には、 これらのクライアント上にあるユーティリティーを DB2 コネクトにバインドする必要があります。詳細については、付録 E, バック・レベル・クライアント用ユーティリティーのバインドを参照してください。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]