組み込み SQL を使用して開発されたアプリケーション・プログラムは、それが作動するときに使用する各データベースとバインドされていなければなりません。 コマンド・センターおよびクライアント構成アシスタントが使用可能なプラットフォームでは、これらの機能を使用してこれを行うことができます。
バインドは、各データベースにつき、アプリケーションごとに 1 度実行されなければなりません。 バインド・プロセスの間に、データベース・アクセス・プランは、実行される各 SQL ステートメントごとに保管されます。 これらのアクセス・プランは、アプリケーション開発者によって提供され、(プリコンパイルの間に作成された) バインド・ファイル に入っています。 バインドとは、ホストまたは AS/400 データベース・サーバーによりそれらのバインド・ファイルを処理するプロセスを指します。 バインドの詳細については、アプリケーション開発の手引き を参照してください。
DB2 コネクトで提供されているいくつかのユーティリティーは組み込み SQL を使って開発されているため、ホストまたは AS/400 データベース・サーバ ーにバインドするまでそれらをシステムで使用することはできません。表 4 でリストされている DB2 コネクト・ユーティリティ ーおよ びインターフェースを使用しない場合、それらを各ホストまたは AS/400 デ ータベース・サーバーにバインドする必要はありません。これらのユーティリティーに必要なバインド・ファイルのリストは、次のファイルに含まれています。
これらのファイルの 1 つをデータベースにバインドすることは、個々のユーティリティーをそのデータベースへバインドすることになります。
DB2 コネクト エンタープライズ・エディション がインストールされている場合は、それぞれのクライアント・プラットフォーム・タイプ から DB2 コネクト・ユーティリティーを各ホストまたは AS/400 データベース・サーバーにバインドしないと、 それらをシステムで使用することはできません。
たとえば、10 の OS/2 クライアントと、10 の Windows クライアントと、 そして 10 の AIX クライアントがそれぞれ、DB2 コネクト エンタープライズ・エディション (Windows NT 版) サーバー経由 で DB2 ユニバーサル・データベース (OS/390 版) に接続している場合は、次のようにします。
注: | これは、すべてのクライアントが同じサービス・レベルにあることを前提としています。 そうでない場合、特定のサービス・レベルの各クライアントからバインドする必要があります。 DB2 バージョン 2.1 以前のクライアントがある場合は、付録 E, バック・レベル・クライアント用ユーティリティーのバインドを参照してください。 |
DB2 コネクト・ユーティリティーに加えて、組み込み SQL を使用する その他 のアプリケーションについても、その作業のときに使用する各データベース へバインドする必要があります。バインドされていないアプリケーションは、実行する時、通常は SQL0805N エラー・メッセージを出します。 バインドを必要とするすべてのアプリケーションについて追加的なバインド・リスト・ファイルを作成したいときがあるかもしれません。
バインド先のホストまたは AS/400 データベース・サーバーごとに、以下の手順を実行します。
注: | BINDADD および CREATE IN COLLECTION NULLID 特権は、パッケージがまだない場合、たとえば、はじめてパッケージを作成するときにのみ十分な権限であるといえます。
パッケージがすでに存在しており、それらを再度バインドしている場合は、タスクを完成させるために必要な権限は、誰がオリジナル・バインドを行ったかにかかってきます。
A もし同一人がオリジナル・バインドを行い、再度のバインドも行っている場合は、上に挙げた権限のどれでも有することになり、バインドを完了させることができます。
B 最初のバインドを行ったのとは違う人が、 2 番目 のバインドを行う場合は、バインドを完了するのに SYSADM または SYSCTRL 権限が必要です。BINDADD および CREATE IN COLLECTION NULLID 権限を有するだけでは、バインドを完了させることができません。 ただし、SYSADM または SYSCTRL 権限のいずれかがあれば、パッケージの作成は可能です。 この状況では、置き換えようとする既存のパッケージのおのおのについて、BIND 特権が必要になります。 |
VSE または VM システムでは、次の命令を発行することができます。
grant select on table to nullid with grant option
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
ここで、DBALIAS、USERID、および 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 コネクトの各種構成要素で使用されるバインド・ファイルおよびパッケージ名が示されています。 ある場合には、異なるオペレーティング・システムでは異なるバインド・ファイルおよびパッケージが使用されています。
構成要素 | バインド・ ファイル | パッケージ | 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 ファイルに追加することができます。
バインド・オプションについて詳しくは、コマンド解説書 を参照してください。
注: