13 DRDAサーバーの構成

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

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

  • DB2 UDB for z/OS

  • DB2 UDB for iSeries

  • Linux、UNIX、Windows上のDB2 UDB

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

トピック:

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

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

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

    特定のDRDAサーバーのゲートウェイを初めて使用したとき、Oracleが提供するパッケージがその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ゲートウェイ・パッケージの手動バインドを選択できます。Linux、UNIX、Windows上のDB2 UDBのパッケージを手動でバインドする方法の詳細は、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表およびセキュリティの情報は、セキュリティ上の考慮事項を参照してください。

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

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

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

    特定のDRDAサーバーのゲートウェイを初めて使用したとき、Oracleが提供するパッケージがその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のロケーション名は確定していません。システム管理者に連絡して、インスタンスのロケーション名を設定してください。

Linux、UNIX、Windows上のDB2 UDB用のDRDAサーバーの構成

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

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

    特定のDRDAサーバーのゲートウェイを初めて使用したとき、Oracleが提供するパッケージがその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. Linux、UNIX、Windows上のDB2 UDBインスタンス用のDRDAのロケーション名を確認します

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

    SELECT CURRENT SERVER FROM any_table
    

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

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

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

ゲートウェイは、複数のDB2パッケージを使用します。通常、初めてDB2インスタンスに接続するときに、これらをアップロードしてバインドします。ユーザーの環境によっては、接続元のユーザーIDにバインドの実行に必要な権限がない場合や、ゲートウェイにバインドの実行を許可するのではなくパッケージを手動でバインドするようにしている場合があります。

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

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

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

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

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

    PUTコマンドを使用して、順編成のデータセットの内容を置き換えます。

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

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

  5. ISPFのTSOコマンド・オプション(オプション6)を使用して、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

Linux、UNIX、Windows上のDB2 UDBのパッケージの手動バインド

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

  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で終わるファイルはバイナリ・モードで転送する必要があり、.lstで終わるファイルはASCIIモードで転送する必要があります。

  2. DB2インスタンスに接続し、バインド・コマンドを発行します。次に例を示します。
    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