9.2.2 ローカル・リスナーへの情報の登録

デフォルトのLREGプロセスでは、TCP/IP、ポート1521のデフォルトのローカル・アドレス上のローカル・リスナーにサービス情報が登録されます。リスナー構成がデータベース構成と同期している場合、LREGでは、別のノード上の非デフォルトであるローカル・リスナーまたはリモート・リスナーにサービス情報を登録できます。同期が行われるのは、listener.oraファイルでリスナーのプロトコル・アドレスが指定され、初期化パラメータ・ファイルでリスナーの場所が指定されている場合です。

TCP/IPまたはポート1521を使用しないローカル・リスナーへLREGプロセスによって登録する必要がある場合は、初期化ファイルのLOCAL_LISTENERパラメータを構成して、ローカル・リスナーを指定します。

共有サーバー環境では、初期化パラメータ・ファイルのDISPATCHERSパラメータのLISTENER属性を使用して、ディスパッチャを非デフォルトのローカル・リスナーに登録できます。LREGでは、ディスパッチャ情報のリスナーへの登録にLOCAL_LISTENERパラメータとLISTENER属性が使用できるため、リスナーの値が同じ場合は、パラメータと属性の両方の指定は不要です。

LOCAL_LISTENERは、カンマ区切りのリスト・パラメータです。文字列にカンマがある場合、文字列全体を二重引用符で囲む必要があります。LOCAL_LISTENERパラメータを次のように設定します。

ALTER SYSTEM SET LOCAL_LISTENER=["]listener_address["][,...];

たとえば、リスナー・アドレス"ab,cd"が入力された場合、1つのリスナー・アドレスに解決されます。アドレスがab,cdと入力された場合、abcdの2つのリスナー・アドレスに解決されます。

共有サーバー接続の場合は、LISTENER属性を次のように設定します。

ALTER SYSTEM SET DISPATCHERS="(PROTOCOL=tcp)(LISTENER=listener_address)";

前述のコマンドで、listener_addressは、データベース・サーバー上にあるtnsnames.oraファイルなどのネーミング・メソッドによってリスナー・プロトコル・アドレスに解決されます。

ノート:

  • LOCAL_LISTENERパラメータの動的な更新には、次のようにSQL文のALTER SYSTEMを使用します。

    ALTER SYSTEM SET LOCAL_LISTENER=["]listener_address["][,...]
    

    次のような文でパラメータをNULLに設定すると、TCP/IP、ポート1521のデフォルトのローカル・アドレスが使用されます。

    ALTER SYSTEM SET LOCAL_LISTENER=''
    
  • LISTENER属性はLOCAL_LISTENERパラメータに優先されます。その結果、SQL文のALTER SYSTEM SET LOCAL_LISTENERはこの属性の設定値に影響を与えません。

例9-1では、データベースがホストsales1-serverにあります。このホスト上のリスナーはlistener_sales1という名前で、ポート1521ではなくポート1421でリスニングするように構成されています。

例9-1 専用サーバー環境でのローカル・リスナーの登録

  1. ローカル・リスナーのあるホストで、Oracle Net Managerを使用してリスナーのプロトコル・アドレスを備えたlistener.oraファイルを構成します。

  2. データベースで、データベース初期化パラメータ・ファイルのLOCAL_LISTENERパラメータをローカル・リスナーの別名に設定します。たとえば:

    ALTER SYSTEM SET LOCAL_LISTENER=listener_sales1;
    

    データベースが共有サーバー接続用に構成されている場合、LISTENER属性を次のように設定できます。

    ALTER SYSTEM SET DISPATCHERS="(PROTOCOL=tcp)(LISTENER=listener_sales1)";
    
  3. テキスト・エディタを使用して、データベース・ホストのtnsnames.oraファイルでLOCAL_LISTENER設定のリスナー名の別名を次のように解決します。

    listener_sales1= 
     (DESCRIPTION = 
      (ADDRESS = (PROTOCOL=tcp)(HOST=sales-server)(PORT=1421)))

    ノート:

    • ローカル・リスナーを登録する場合で、Oracle Connection Managerを使用する場合は、(DESCRIPTION =や閉じかっこを含めないでください。

    • ネットワーク・サービス名のエントリは、接続記述子のCONNECT_DATAセクションなしでプロトコル・アドレス用に作成できます。