13 DRDAサーバーの構成

この項では、DRDAサーバーを構成するために実行する必要のあるタスクについて説明します。サポートされるオペレーティング・システムごとに、個別に説明します。所定のオペレーティング・システムおよびデータベースの使用経験が必要です。

リモートDRDAサーバーを構成する手順は、次のDRDAサーバーに適用されます。

  • DB2 UDB for z/OS

  • DB2 UDB for iSeries

  • Linux、UNIX、Windows上のDB2 UDB

DRDAデータベースを構成してゲートウェイによるアクセスを可能にするには、DRDAデータベースに対する操作と、ホスト・オペレーティング・システムの特定のコンポーネントに対する操作が必要です。ホスト・システムにOracleソフトウェアがインストールされない場合でも、ホスト・システムおよびDRDAデータベースに対するアクセスと、それらに関する知識が構成時に必要になります。ホスト・システムおよびDRDAデータベースの詳細は、ベンダーのドキュメントを参照してください。

トピック:

13.1 DB2 UDB for z/OS用のDRDAサーバーの構成

次のタスクを実行して、z/OSシステム上でDB2が稼働するDRDAサーバーを構成します。

  1. パッケージを所有するユーザーIDを定義します。

    特定のDRDAサーバーの最初のゲートウェイの使用時に、オラクル社が提供するパッケージは自動的にDRDAサーバーにバインドされます。使用されるユーザーIDとパスワード(現在のOracleユーザーとして暗黙的に示されるユーザー、またはCREATE DATABASE LINKコマンドで明示的に定義されたユーザー)に、DRDAサーバーでパッケージを作成するための適切な権限を付与する必要があります。このユーザーに必要な最小権限は次のとおりです。

    • BINDCOPYおよびEXECUTEのパッケージ権限。たとえば、次のようにします。

      GRANT BIND    ON PACKAGE oraclegtw.* TO userid
      GRANT COPY    ON PACKAGE oraclegtw.* TO userid
      GRANT EXECUTE ON PACKAGE oraclegtw.* TO PUBLIC
      
    • CREATE INのコレクション権限。たとえば、次のようにします。

      GRANT CREATE IN COLLECTION oraclegtw TO USER userid
      
    • BINDADDおよびBINDAGENTのシステム権限。たとえば、次のようにします。

      GRANT BINDADD   TO USER userid
      GRANT BINDAGENT TO USER userid
      
    • CREATETABのデータベース権限。たとえば、次のようにします。

      GRANT CREATETAB ON DATABASE database TO USER userid
      

    必要に応じて、DRDAゲートウェイ・パッケージの手動バインドを選択できます。DB2 UDB for Linux, Unix, and Windows用のパッケージを手動でバインドする方法の詳細は、DRDAゲートウェイ・パッケージの手動バインドを参照してください。

    パッケージおよびHS_TRANSACTION_LOG表を所有するユーザーIDを選択します。このユーザーIDがDB2とOS/390(MVS)の両方に対して定義されていることを確認してください。

    ユーザーIDには、表SYSIBM.SYSPACKSTMTに対するSELECT権限が付与されている必要があります。

  2. リカバリ・ユーザーIDを定義します。

    ゲートウェイの構成時に、リカバリ・ユーザーIDおよびパスワードがHS_FDS_RECOVERY_ACCOUNTおよびHS_FDS_RECOVERY_PWDパラメータを使用してゲートウェイ初期化ファイルに指定されています。分散トランザクションが失敗すると、リカバリ・プロセスでは、これらのパラメータで定義されたユーザーIDとパスワードを使用して、リモート・データベースに接続します。このユーザーIDは、パッケージに対する実行権限を持っている必要があり、DRDAデータベースに定義されている必要があります。ユーザーIDがHS_FDS_RECOVERY_ACCOUNTで指定されていない場合、分散トランザクションがインダウト状態になると、ゲートウェイはRECOVERのユーザーIDへの接続を試みます。

    リカバリに使用するユーザーIDとパスワードを決定します。

    HS_TRANSACTION_LOG表は、リカバリ・ユーザーと同じスキーマで作成する必要があります。

    リカバリ・ユーザーIDには、表SYSIBM.SYSPACKSTMTに対するSELECT権限が付与されている必要があります。

  3. DB2インスタンス用のDRDAのロケーション名を確認します。

    ゲートウェイ・パラメータとして、DRDAのロケーション名が必要です。ロケーション名を確認するには、DB2 SPUFIセッションで次のSQL問合せを実行します。

    SELECT CURRENT SERVER FROM any_table 
    

    ここで、any_tableは、1つ以上の行が含まれる有効な表です。

    この問合せで戻された値が空白またはNULLの場合、DRDAのロケーション名は確定していません。システム管理者に連絡して、インスタンスのロケーション名を設定してください。

  4. ゲートウェイ用のDB2分散データ機能を構成します。

    DB2の分散データ機能(DDF)は、DRDAとDRDA以外のすべての分散データベース操作を管理するDB2のコンポーネントです。

    現在のサイトでDB2の分散操作を使用している場合、通常は、ゲートウェイを通じてアクセスする予定のDB2インスタンス上でDDFが稼働しています。DDFが稼働していない場合、適切なDB2のドキュメントに従ってDDFを構成および起動する必要があります。

    DB2インスタンス上でDDFが稼働していない場合でも、状況によってはDDFの通信データベース(CDB)表を変更し、ゲートウェイからのDRDAセッションの認可処理を指定する必要があります。適切な権限があるユーザーは、DB2 SPUFIユーティリティなどのユーティリティを使用してこれを行うことができます。CDB表を変更する場合、変更を反映するにはDDFを停止してから再起動する必要があります。追加のCDB表およびセキュリティの情報は、セキュリティ上の考慮事項を参照してください。

13.2 DB2 UDB for iSeries用のDRDAサーバーの構成

次の手順を実行するには、DB2 UDB for iSeriesおよびAS/400の使用経験が必要です。

  1. パッケージを所有するユーザーIDを定義します。

    特定のDRDAサーバーの最初のゲートウェイの使用時に、オラクル社が提供するパッケージは自動的にDRDAサーバーにバインドされます。使用されるユーザーIDとパスワード(現在のOracleユーザーとして暗黙的に示されるユーザー、またはCREATE DATABASE LINKコマンドで明示的に定義されたユーザー)に、DRDAサーバーでパッケージを作成するための適切な権限を付与する必要があります。このユーザーに必要な最小権限は次のとおりです。

    • CRTSQLPKGコマンドに対する使用権限

    • パッケージが作成されるライブラリに対する変更権限

    パッケージおよびHS_TRANSACTION_LOG表を所有するユーザーIDを選択します。このユーザーIDがDB2 UDB for iSeriesとAS/400で定義されていることを確認してください。

    ユーザーIDには、表QSYS2.SYSPACKAGEに対するSELECT権限が付与されている必要があります。

  2. リカバリ・ユーザーIDを定義します。

    ゲートウェイの構成時に、リカバリ・ユーザーIDおよびパスワードがHS_FDS_RECOVERY_ACCOUNTおよびHS_FDS_RECOVERY_PWDパラメータを使用してゲートウェイ初期化ファイルに指定されています。分散トランザクションが失敗すると、リカバリ・プロセスでは、これらのパラメータで定義されたユーザーIDとパスワードを使用して、リモート・データベースに接続します。このユーザーIDは、パッケージに対する実行権限を持っている必要があり、DRDAデータベースに定義されている必要があります。ユーザーIDがHS_FDS_RECOVERY_ACCOUNTで指定されていない場合、分散トランザクションがインダウト状態になると、ゲートウェイはRECOVERのユーザーIDへの接続を試みます。

    リカバリに使用するユーザーIDとパスワードを決定します。

    HS_TRANSACTION_LOG表は、リカバリ・ユーザーと同じスキーマに作成する必要があります。

    リカバリ・ユーザーIDには、表QSYS2.SYSPACKAGEに対するSELECT権限が付与されている必要があります。

  3. DB2 UDB for iSeriesインスタンス用のDRDAのロケーション名を確認します。

    ゲートウェイ・パラメータとして、DRDAのロケーション名が必要です。ロケーション名を確認するには、STRSQLセッションで次のSQL問合せを実行します。システムでSQLを使用できない場合、AS/400コマンドのDSPRDBDIREを使用してLOCAL DRDAサーバーを識別します。

    SELECT CURRENT SERVER FROM any_table
    

    ここで、any_tableは、1つ以上の行が含まれる有効な表です。

    この問合せで戻された値が空白またはNULLの場合、DRDAのロケーション名は確定していません。システム管理者に連絡して、インスタンスのロケーション名を設定してください。

13.3 DB2 UDB for Linux_ UNIX_ and Windows用のDRDAサーバーの構成

次の手順を実行するには、DB2/UDBの使用経験、DB2 UDB for Linux, UNIX, and Windowsの通信サブシステムの構成、およびホスト・システム管理ツールが必要です。

  1. パッケージを所有するユーザーIDを定義します。

    特定のDRDAサーバーの最初のゲートウェイの使用時に、オラクル社が提供するパッケージは自動的にDRDAサーバーにバインドされます。使用されるユーザーIDとパスワード(現在のOracleユーザーとして暗黙的に示されるユーザー、またはCREATE DATABASE LINKコマンドで明示的に定義されたユーザー)に、DRDAサーバーでパッケージを作成するための適切な権限を付与する必要があります。次に、このユーザーが必要とする最小限の権限を示します。

    • BINDおよびEXECUTEのパッケージ権限。たとえば、次のようにします。

      GRANT BIND    ON PACKAGE oraclegtw.* TO userid
      GRANT EXECUTE ON PACKAGE oraclegtw.* TO PUBLIC
      
    • CREATEINのスキーマ権限。たとえば、次のようにします。

      GRANT CREATEIN ON SCHEMA otgdb2 TO USER userid
      GRANT CREATEIN ON SCHEMA oraclegtw TO USER userid
      
    • CONNECTBINDADDおよびCREATETABのデータベース権限。たとえば、次のようにします。

      GRANT CONNECT   ON DATABASE TO USER userid
      GRANT BINDADD   ON DATABASE TO USER userid
      GRANT CREATETAB ON DATABASE TO USER userid
      

    必要に応じて、DRDAゲートウェイ・パッケージの手動バインドを選択できます。Linux、UNIX、Windows上のDB2 UDBのパッケージを手動でバインドする方法の詳細は、DRDAゲートウェイ・パッケージの手動バインドを参照してください。

    パッケージおよびHS_TRANSACTION_LOG表を所有するユーザーIDを選択します。このユーザーIDがDB2インスタンスIDとオペレーティング・システムの両方で定義されていることを確認してください。

    ユーザーIDには、表SYSIBM.SYSPLANに対するSELECT権限が付与されている必要があります。

  2. リカバリ・ユーザーIDを定義します。

    ゲートウェイの構成時に、リカバリ・ユーザーIDおよびパスワードがHS_FDS_RECOVERY_ACCOUNTおよびHS_FDS_RECOVERY_PWDパラメータを使用してゲートウェイ初期化ファイルに指定されています。分散トランザクションが失敗すると、リカバリ・プロセスでは、これらのパラメータで定義されたユーザーIDとパスワードを使用して、リモート・データベースに接続します。このユーザーIDは、パッケージに対する実行権限を持っている必要があり、DRDAデータベースに定義されている必要があります。ユーザーIDがHS_FDS_RECOVERY_ACCOUNTで指定されていない場合、分散トランザクションがインダウト状態になると、ゲートウェイはRECOVERのユーザーIDへの接続を試みます。

    リカバリに使用するユーザーIDとパスワードを決定します。

    HS_TRANSACTION_LOG表は、リカバリ・ユーザーと同じスキーマに作成する必要があります。

    リカバリ・ユーザーIDには、表SYSIBM.SYSPLANに対するSELECT権限が付与されている必要があります。

  3. DB2 UDB for Linux, UNIX, and Windowsインスタンス用のDRDAのロケーション名を確認します。

    ゲートウェイ・パラメータとして、DRDAのロケーション名が必要です。ロケーション名を確認するには、DB2 CLIセッションで次のSQL問合せを実行します。

    SELECT CURRENT SERVER FROM any_table
    

    ここで、any_tableは、1つ以上の行が含まれる有効な表です。

    この問合せで戻された値が空白またはNULLの場合、DRDAのロケーション名は確定していません。システム管理者に連絡して、インスタンスのロケーション名を設定してください。

13.4 DRDAゲートウェイ・パッケージの手動バインド

ゲートウェイでは複数のDB2パッケージが使用され、通常、ゲートウェイが最初にDB2インスタンスに接続する際にアップロードおよびバインドされます。ユーザーの環境によっては、接続するユーザーIDに、バインディングを実行するために必要な権限がない場合があります。あるいは、ゲートウェイでバインドを行うよりも、手動でパッケージをバインドするほうが好まれる場合もあります。

このような場合は、手動バインドのパッケージの事前定義済セットが用意されています。これらのパッケージには制限事項がいくつかあり、特定のゲートウェイ初期化パラメータを設定して値を指定することでそれらを順守する必要があります。それ以外の場合、ゲートウェイは自動的にパッケージを再バインドしようと試みます。

この項の内容は次のとおりです。

13.4.1 DB2 UDB for z/OS用のパッケージの手動バインド

DB2 UDB for z/OS用のパッケージを手動でバインドするには、次の手順を実行します。

  1. パラメータDSORG=PSRECFM=FBLRECL=80およびBLKSIZE=3120を使用して、z/OSでシーケンシャル・データセットを割り当てます。次に例を示します。
    userid.DBRMFILE.XMIT
    
  2. パラメータDSORG=PORECFM=FBLRECL=80およびBLKSIZE=6160を使用して、パーティション化されたデータセットを割り当てます。次に例を示します。
    userid.TG4DRDA.CNTL
    
  3. 次のファイルを以前に割り当てられたシーケンシャル・データセットにBINARYモードでFTP転送します。
    ORACLE_HOME\dg4db2\admin\dg4db2_zos_dbrm.xmit
    

    PUTコマンドを使用して、シーケンシャル・データセットのコンテンツを置き換えます。

  4. 次のファイルを以前に割り当てられたPDSにASCIIモードでFTP転送します。
    ORACLE_HOME\dg4db2\admin\dg4db2_zos_bind.jcl
    

    PUTコマンドを使用して、メンバー名BINDとしてPDSにファイルを置きます。

  5. ISPF (オプション6)のTSOコマンド・オプションを使用して、RECEIVEコマンドを発行します。
    RECEIVE INDS('userid.DBRMFILE.XMIT')
    

    RECEIVEコマンドへのパラメータとして、DA(userid.DDODBC.DBRMLIB)を指定します。これにより、xmitが解凍され、指定されたPDS名が作成されます。

  6. BIND JCL (userid.TG4DRDA.CNTL(BIND))を編集し、手順に従ってJCLを更新します。更新後、JCLを発行して、パッケージの実際のバインディングとパッケージに対する実行権限の付与を実行します。

これらのパッケージをゲートウェイで使用するには、ゲートウェイ初期化ファイルで次の初期化パラメータを設定します。

  • HS_OPEN_CURSORS=200

  • HS_FDS_PACKAGE_COLLID=NULLID

13.4.2 DB2 UDB for Linux, Unix, and Windows用のパッケージの手動バインド

DB2 UDB for Linux, Unix, and Windows用のパッケージを手動でバインドするには、次の手順を実行します。

  1. ORACLE_HOME\dg4db2\adminディレクトリからDB2インスタンスを実行しているホストに次のファイルをコピーします。
     DDOC510A.bnd
     DDOC510B.bnd
     DDOC510C.bnd
     DDON510A.bnd
     DDON510B.bnd
     DDON510C.bnd
     DDOR510A.bnd
     DDOR510B.bnd
     DDOR510C.bnd
     DDOS510A.bnd
     DDOS510B.bnd
     DDOS510C.bnd
     DDOU510A.bnd
     DDOU510B.bnd
     DDOU510C.bnd
     dg4db2_luw_pkglist.lst
    

    FTP経由でコピーする場合、.bndで終わるファイルはBINARYモードで転送する必要があり、.lstで終わるファイルはASCIIモードで転送する必要があります。

  2. DB2インスタンスに接続し、bindコマンドを発行します。次に例を示します。
    db2 'connect to <database_name> user <userid> using <password>'
    db2 'bind @dg4db2_luw_pkglist.lst grant public'
    

これらのパッケージをゲートウェイで使用するには、ゲートウェイ初期化ファイルで次の初期化パラメータを設定します。

  • HS_OPEN_CURSORS=200

  • HS_FDS_PACKAGE_COLLID=NULLID