この章では、DRDAサーバーを構成するために実行する必要のあるタスクについて説明します。サポートされるオペレーティング・システムごとに、個別に説明します。所定のオペレーティング・システムおよびデータベースの使用経験が必要です。
リモートDRDAサーバーを構成する手順は、次のDRDAサーバーに適用されます。
DB2/OS390
DB2/400
DB2/UDB
DRDAデータベースを構成してゲートウェイによるアクセスを可能にするには、DRDAデータベースに対する操作と、ホスト・オペレーティング・システムの特定のコンポーネントに対する操作が必要です。ホスト・システムにOracleソフトウェアがインストールされない場合でも、ホスト・システムおよびDRDAデータベースに対するアクセスと、それらに関する知識が構成時に必要になります。ホスト・システムおよびDRDAデータベースの詳細は、ベンダーのドキュメントを参照してください。
この章の内容は次のとおりです。
次のタスクを実行して、OS390システム上でDB2が稼働するDRDAサーバーを構成します。
パッケージを所有するユーザーIDを定義します。
ゲートウェイの構成時に、バインド・パッケージ・ストアド・プロシージャを実行して、DRDAサーバーでゲートウェイ・パッケージをバインドする必要があります。パッケージを適切にバインドするには、プロシージャの実行時に使用されるユーザーIDとパスワード(現在のOracleユーザーとして暗黙的に示されるユーザー、またはCREATE DATABASE LINK
コマンドで明示的に定義されたユーザー)に、DRDAサーバーでパッケージを作成するための適切な権限を付与する必要があります。この同じユーザーIDを使用して、ORACLE2PC(2フェーズ・コミット)表を作成および所有する必要があります。DRDAパッケージのバインドまたはリバインドに使用するユーザーIDには、DRDAサーバーに対する次の権限を1つ以上付与する必要があります。
BIND
、COPY
およびEXECUTE
のパッケージ権限。たとえば、次のようにします。
GRANT BIND ON PACKAGE drda1.* TO userid GRANT COPY ON PACKAGE drda1.* TO userid GRANT EXECUTE ON PACKAGE drda1.* TO PUBLIC
CREATE
IN
のコレクション権限。たとえば、次のようにします。
GRANT CREATE IN ON PACKAGE drda1 TO USER userid
BINDADD
およびBINDAGENT
のシステム権限。たとえば、次のようにします。
GRANT BINDADD TO USER userid GRANT BINDAGENT TO USER userid
CREATETAB
のデータベース権限。たとえば、次のようにします。
GRANT CREATETAB ON DATABASE database TO USER userid
パッケージおよびORACLE2PC
表を所有するユーザーIDを選択します。このユーザーIDがDB2とOS/390(MVS)の両方に対して定義されていることを確認してください。
リカバリ・ユーザーIDを定義します。
ゲートウェイの構成時に、DRDA_RECOVERY_USERID
およびDRDA_RECOVERY_PASSWORD
パラメータを使用して、リカバリ・ユーザーIDとパスワードをゲートウェイ初期化ファイルに指定します。分散トランザクションが失敗した場合、リカバリ・プロセスは、これらのパラメータで定義されたユーザーIDとパスワードを使用してリモート・データベースに接続します。このユーザーIDは、パッケージに対する実行権限を持っている必要があります。また、DRDAデータベースで定義されている必要があります。ユーザーIDがDRDA_RECOVER_USERID
に指定されていない場合、分散トランザクションがインダウト状態になると、ゲートウェイはORARECOV
のユーザーIDに接続を試みます。
リカバリに使用するユーザーIDとパスワードを決定します。
DB2インスタンス用のDRDAのロケーション名を確認します。
ゲートウェイ・パラメータとして、DRDAのロケーション名が必要です。ロケーション名を確認するには、DB2 SPUFIセッションで次のSQL問合せを実行します。
SELECT CURRENT SERVER FROM any_table
ここで、any_table
は、1つ以上の行が含まれる有効な表です。
この問合せで戻された値が空白またはNULLの場合、DRDAのロケーション名は確定していません。システム管理者に連絡して、インスタンスのロケーション名を設定してください。
ゲートウェイ用のDB2分散データ機能を構成します。
DB2 DDFは、DRDAとDRDA以外のすべての分散データベース操作を管理するDB2のコンポーネントです。
現在のサイトでDB2の分散操作を使用している場合、通常は、ゲートウェイを通じてアクセスする予定のDB2インスタンス上でDDFが稼働しています。DDFが稼働していない場合、適切なDB2のドキュメントに従ってDDFを構成および起動する必要があります。
DB2インスタンス上でDDFが稼働していない場合でも、状況によってはDDFの通信データベース(CDB)表を変更し、ゲートウェイからのDRDAセッションの認可処理を指定する必要があります。この作業は、DB2 SPUFIユーティリティなどのユーティリティを使用して、適切に権限付与されたユーザーにより実行できます。CDB表を変更する場合、変更を反映するにはDDFを停止してから再起動する必要があります。追加のCDB表およびセキュリティの情報は、第15章「セキュリティ上の考慮事項」を参照してください。
次の手順を実行するには、DB2/400およびAS/400の使用経験が必要です。
パッケージを所有するユーザーIDを定義します。
ゲートウェイの構成時に、バインド・パッケージ・ストアド・プロシージャを実行して、DRDAサーバーでゲートウェイ・パッケージをバインドする必要があります。パッケージを適切にバインドするには、プロシージャの実行時に使用されるユーザーIDとパスワード(現在のOracleユーザーとして暗黙的に示されるユーザー、またはCREATE
DATABASE
LINK
コマンドで明示的に定義されたユーザー)に、DRDAサーバーでパッケージを作成するための適切な権限を付与する必要があります。この同じユーザーIDを使用して、ORACLE2PC
(2フェーズ・コミット)表を作成および所有する必要があります。DRDAパッケージのバインドまたはリバインドに使用するユーザーIDには、DRDAサーバーに対する次の権限を付与する必要があります。
CRTSQLPKG
コマンドに対する使用権限
パッケージが作成されるライブラリに対する変更権限
パッケージおよびORACLE2PC
表を所有するユーザーIDを選択します。このユーザーIDがDB2/400とAS/400に対して定義されていることを確認してください。
リカバリ・ユーザーIDを定義します。
ゲートウェイの構成時に、DRDA_RECOVERY_USERID
およびDRDA_RECOVERY_PASSWORD
パラメータを使用して、リカバリ・ユーザーIDとパスワードをゲートウェイ初期化ファイルに指定します。分散トランザクションが失敗した場合、リカバリ・プロセスは、これらのパラメータで定義されたユーザーIDとパスワードを使用してリモート・データベースに接続します。このユーザーIDは、パッケージに対する実行権限を持っている必要があります。また、DRDAデータベースで定義されている必要があります。ユーザーIDがDRDA_RECOVER_USERID
に指定されていない場合、分散トランザクションがインダウト状態になると、ゲートウェイはORARECOV
のユーザーIDに接続を試みます。
リカバリに使用するユーザーIDとパスワードを決定します。
DB2/400インスタンス用のDRDAのロケーション名を確認します。
ゲートウェイ・パラメータとして、DRDAのロケーション名が必要です。ロケーション名を確認するには、STRSQLセッションで次のSQL問合せを実行します。システムでSQLを使用できない場合、AS/400コマンドのDSPRDBDIRE
を使用してローカルDRDAサーバーを識別します。
SELECT CURRENT SERVER FROM any_table
ここで、any_table
は、1つ以上の行が含まれる有効な表です。
この問合せで戻された値が空白またはNULLの場合、DRDAのロケーション名は確定していません。システム管理者に連絡して、インスタンスのロケーション名を設定してください。
次の手順を実行するには、DB2/UDBの使用経験、DB2/UDBの通信サブシステムの構成、およびホスト・システム管理ツールが必要です。
パッケージを所有するユーザーIDを定義します。
ゲートウェイの構成時に、バインド・パッケージ・ストアド・プロシージャを実行して、DRDAサーバーでゲートウェイ・パッケージをバインドする必要があります。パッケージを適切にバインドするには、プロシージャの実行時に使用されるユーザーIDとパスワード(現在のOracleユーザーとして暗黙的に示されるユーザー、またはCREATE DATABASE
LINK
コマンドで明示的に定義されたユーザー)に、DRDAサーバーでパッケージを作成するための適切な権限を付与する必要があります。この同じユーザーIDを使用して、ORACLE2PC
(2フェーズ・コミット)表を作成および所有する必要があります。DRDAパッケージのバインドまたはリバインドに使用するユーザーIDには、DRDAサーバーに対する次の権限を1つ以上付与する必要があります。
BIND
およびEXECUTE
のパッケージ権限。たとえば、次のようにします。
GRANT BIND ON PACKAGE drda1.g2drsql TO USER userid
GRANT EXECUTE ON PACKAGE drda1.g2drsql TO PUBLIC
CREATEIN
のスキーマ権限。たとえば、次のようにします。
GRANT CREATEIN ON SCHEMA otgdb2 TO USER userid GRANT CREATEIN ON SCHEMA drda1 TO USER userid
CONNECT
、BINDADD
およびCREATETAB
のデータベース権限。たとえば、次のようにします。
GRANT CONNECT ON DATABASE TO USER userid GRANT BINDADD ON DATABASE TO USER userid GRANT CREATETAB ON DATABASE TO USER userid
パッケージおよびORACLE2PC
表を所有するユーザーIDを選択します。このユーザーIDがDB2インスタンスIDとオペレーティング・システムの両方に対して定義されていることを確認してください。
リカバリ・ユーザーIDを定義します。
ゲートウェイの構成時に、DRDA_RECOVERY_USERID
およびDRDA_RECOVERY_PASSWORD
パラメータを使用して、リカバリ・ユーザーIDとパスワードをゲートウェイ初期化ファイルに指定します。分散トランザクションが失敗した場合、リカバリ・プロセスは、これらのパラメータで定義されたユーザーIDとパスワードを使用してリモート・データベースに接続します。このユーザーIDは、パッケージに対する実行権限を持っている必要があります。また、DRDAデータベースで定義されている必要があります。ユーザーIDがDRDA_RECOVER_USERID
に指定されていない場合、分散トランザクションがインダウト状態になると、ゲートウェイはORARECOV
のユーザーIDに接続を試みます。
リカバリに使用するユーザーIDとパスワードを決定します。
DB2/UDBインスタンス用のDRDAのロケーション名を確認します。
ゲートウェイ・パラメータとして、DRDAのロケーション名が必要です。ロケーション名を確認するには、DB2 CLIセッションで次のSQL問合せを実行します。
SELECT CURRENT SERVER FROM any_table
ここで、any_table
は、1つ以上の行が含まれる有効な表です。
この問合せで戻された値が空白またはNULLの場合、DRDAのロケーション名は確定していません。システム管理者に連絡して、インスタンスのロケーション名を設定してください。