プライマリ・コンテンツに移動
Oracle® Traffic Director管理者ガイド
11g リリース1 (11.1.1.9)
B66436-05
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

16.2 一般的なエラーの解決方法

この項では、次の問題の解決策を示します。

16.2.1 起動障害: ポートにバインドできない

このエラーは、構成内の1つ以上のHTTPリスナーが、他のプロセスによってすでに使用中のTCPポート番号に割り当てられている場合に発生します。

[ERROR:32] startup failure: could not bind to port port (Address already in use)
[ERROR:32] [OTD-10380] http-listener-1: http://host:port: Error creating socket (Address already in use)
[ERROR:32] [OTD-10376] 1 listen sockets could not be created
[ERROR:32] server initialization failed

次のコマンドを実行すると、指定のポートでリスニング中のプロセスを検出できます。

> netstat -npl | grep :port | grep LISTEN

構成済のHTTPリスナー・ポートが他のプロセスで使用中の場合は、ポートを解放するか、10.3項「リスナーの変更」の説明に従って変更します。

16.2.2 HTTPリスナー・ポート80でサーバーを起動できない

このエラーは、1024までのHTTPリスナー・ポート(たとえば80)を構成していて、Oracle Traffic Directorインスタンスを-root以外のユーザーとして起動しようとした場合に発生します。

次のメッセージがサーバー・ログに書き込まれます。

[ERROR:32] [OTD-10376] 1 listen sockets could not be created
[ERROR:32] [OTD-10380] http-listener-1: http://soa.example.com:80:
 Error creating socket (No access rights)

1024までのポート番号は、Internet Assigned Numbers Authority (IANA)によって様々なサービスに割り当てられます。これらのポート番号にアクセスできるのは、rootユーザーのみです。

この問題を解決するには、次のいずれかを行います。

  • 1024より上のポート番号(たとえば8080)でOracle Traffic Directorを構成し、ポート80で受信したリクエストを構成済Oracle Traffic DirectorポートにリダイレクトするIPパケット・フィルタリング・ルールを次のように作成します。

    # /sbin/iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
    # /sbin/iptables -t nat -A PREROUTING -p udp -m udp --dport 80 -j REDIRECT --to-ports 8080
    

    次の例に示すように、chkconfigコマンドを実行し、サーバーの再起動時にiptablesサービスがデフォルトで起動されることを確認します。

    # chkconfig --level 35 iptables on
    
  • xinetdがシステム内にインストールされている場合、/etc/xinetd.d/ディレクトリに次のエントリを含むファイル(たとえばotd)を作成します。

    service otd
    {
    type = UNLISTED
    disable = no
    socket_type = stream
    protocol = tcp
    user = root
    wait = no
    port = 80
    redirect = 127.0.0.1 8080
    }
    

    このエントリにより、ポート80で受けたすべての受信TCPトラフィックがローカル・マシンのポート8080にリダイレクトされます。

    詳細は、Linux xinetdドキュメントを参照してください。

16.2.3 PKCS#11トークンPINの変更後SSL/TLSが有効なサーバーを再起動できない

このエラーは、SSLが有効な構成について、PKCS#11トークンPINを設定または変更し、インスタンスの実行中に更新済の構成をデプロイすると発生します。

次のメッセージがサーバー・ログに書き込まれます。

[ERROR:32] [OTD-10094] NSS PKCS #11 initialization failed 
(SEC_ERROR_BAD_PASSWORD: Security password entered is incorrect.)
[ERROR:32] [OTD-10492] New configuration not installed
[ERROR:32] [OTD-10520] The new configuration is incompatible with the existing
 configuration (Enabling PKCS #11 or SSL requires a server restart)

この問題を解決するには、start-instance CLIコマンドを使用するか、管理コンソールで「インスタンスの起動/再起動」ボタンをクリックしてインスタンスを起動します。表示されるプロンプトで、PINで保護されている各トークンのPINを入力します。

このエラーを回避するには、SSLが有効な構成に対してPKCS#11トークンPINを設定または変更した後、まず、実行中のインスタンスを停止し、変更内容をデプロイして、次にインスタンスを起動します。

16.2.4 SNMPサブエージェントを起動できない

このエラーは、構成済SNMPサブエージェント・ポートが別のプロセスによって使用中である場合に通常発生します。

次のメッセージが管理サーバー・ログに書き込まれます。

OTD-63410 The SNMP subagent failed to start.

次のコマンドを使用して、ノード上のSNMPサブエージェントの構成済ポートが別のプロセスによってすでに使用されていないかを確認します。

> netstat -npl --udp | grep :port

この問題を解決するには、13.6.2項「SNMPサブエージェントの構成」の説明に従い、INSTANCE_HOME/admin-server/config/snmpagt.confファイルでポートを解放するか変更します。

16.2.5 管理サーバーと通信できない: 接続拒否

このエラーは、次の状況でtadmコマンドを実行すると発生します。

  • --portオプションに指定された値が正しくありません。

  • --portオプションが指定されておらず、管理サーバーが、デフォルトのSSLポート8989以外のポートで実行されています。

--portオプションに正しい値を指定してコマンドを再度実行します。

16.2.6 Oracle Traffic Directorが、起動時にメモリーを大量に消費する

Oracle Traffic Directorインスタンスの起動時、特定のパラメータの値(キープ・アライブ接続の最大数、接続キューのサイズ、オリジン・サーバーへの最大接続数)が、システムのファイル・ディスクリプタ制限に基づき自動的に割り当てられます。

ファイル・ディスクリプタ制限が非常に高い場合、未定義パラメータに自動割り当てされる値は、必要以上に高くなり、その結果、Oracle Traffic Directorで過度なメモリー量が消費されます。この問題を回避するには、キープ・アライブ接続の最大数(15.2.3.3項)、接続キューのサイズ(15.2.1.4項)および個々のオリジン・サーバーへの最大接続数(7.3項)を明示的に構成します。

16.2.7 オペレーティング・システム・エラー: システム内で開いているファイルが多すぎる

このLinuxのオペレーティング・システム・エラーは、割り当てられたファイル・ディスクリプタ数がシステムの制限に到達すると発生します。

次のメッセージがサーバー・ログに書き込まれます。

[ERROR:16] [OTD-10546] Insufficient file descriptors for optimum configuration.

このエラーを回避するには、Linuxのファイル・ディスクリプタ制限をデフォルトの1024から合理的な数に増やします。詳細は、15.3項「ファイル・ディスクリプタ制限のチューニング」を参照してください。

16.2.8 一時ディレクトリの変更後にインスタンスを停止できない

このエラーは、構成の一時ディレクトリを変更した後、インスタンスを停止せずに変更デプロイし、その後インスタンスを停止しようとすると発生します。一時ディレクトリは、構成のインスタンスのプロセスIDおよびソケット情報が格納される(管理ノード上)のディレクトリです。

このエラーが発生すると、次のメッセージがサーバー・ログに書き込まれます。

OTD-63585 An error occurred while stopping the server. For details, see the server log.

このエラーを回避する手順

構成の一時ディレクトリを変更した場合、構成のすべてのインスタンスをまず停止して、変更をデプロイし、次にインスタンスを起動します。

この問題を回避する手順

Oracle Traffic Directorインスタンスを停止します。

  1. 次のいずれかを実行して、構成の現在の一時ディレクトリを検出します。

    • 次の例に従い、get-config-prop CLIコマンドを実行します。

      tadm> get-config-prop --config=soa temp-path
      /tmp/net-test-a46e5844
      
    • 管理コンソールにログインし、必要な構成を選択し、「詳細設定」を選択します。結果のページで、「一時ディレクトリ」フィールドを探します。

    一時ディレクトリへのパスを記録します。

  2. 次のコマンドを実行して、実行中のインスタンスのプロセスIDを検出します。

    cat temp_dir/pid
    

    temp_dirは、手順1で記録した一時ディレクトリへのフル・パスです。

    このコマンドによって戻されるプロセスIDを記録します。

  3. 次のコマンドを実行して、プロセスを停止します。

    kill pid
    

    pidは、手順2で記録したプロセスIDです。

16.2.9 管理サーバーを再起動できない

Linuxシステムでは、デフォルトで/etc/cron.daily/tmpwatchにあるcronスクリプトtmpwatchが毎日実行されるように設定されています。このスクリプトは、管理サーバー上のすべての/tmpディレクトリから240時間(10日)経過したファイルをすべて削除します。そのため、管理サーバーを10日間再起動しなかった場合、デフォルトpidファイルが削除されます。これは、10日後に管理サーバーを再起動できなくなることを意味します。

この問題を回避するには

  • temp-pathの場所を変更する: <otd-home>/admin-server/config/server.xmlファイルで、temp-pathの値をサーバー・ユーザーが排他的な権限を持つ場所に変更します。たとえば、<temp-path>/var/tmp/https-test-1234</temp-path>に変更します。加えて、新しいtemp-pathがtmpwatchスクリプトによって監視されないようにします。

  • cronスクリプトを変更する: cronスクリプトからtmpwatchの値240 /tmpを削除します。tmpwatchの監視対象からディレクトリを除外するには、-X/--exclude-patternオプションを使用します。このオプションの詳細は、tmpwatchのmanページを参照してください。

16.2.10 Oracle Traffic Directorでセッションの固定性が維持されない

Oracle Traffic Directorではセッションの固定性が次のように維持されます。

Cookieベースのセッション持続

これは一般的なシナリオで、クライアントがWebサーバーやアプリケーション・サーバーからのcookieを受け入れる場合です。このシナリオでは、Oracle Traffic DirectorはHTTPトラフィックのロード・バランシングを行う際に、自身のcookieを使用してセッションを持続します。これにより、固定性リクエストつまりHTTPセッションcookieが含まれているリクエストは、そのcookieの生成元であるバックエンド・アプリケーション・サーバーに常にルーティングされます。

Oracle Traffic Director 11. 1.1.5を使用している場合で、バックエンド・アプリケーション・サーバーがデフォルトのJSESSIONID以外のHTTPセッションcookieを使用している場合は、セッション持続が履行されるようOracle Traffic Directorを明示的に構成する必要があります。一方、Oracle Traffic Director 11.1.1.6の場合は、オリジン・サーバーからcookieを受信した時点でセッション持続が履行されます。


注意:

Oracle Traffic DirectorでURIベースのセッション固定性を維持するには、WebLogic 10.3.xにパッチを追加する必要があります。

URIベースのセッション持続

このシナリオはあまり一般的ではありません。このシナリオではクライアント側でcookieが無効にされているため、バックエンドのWebサーバーまたはアプリケーション・サーバー側でURIにHTTPセッション情報を付加してセッション持続を維持します。

このシナリオでは、バックエンド・アプリケーション・サーバーによってURIにOracle Traffic DirectorのJRoute cookieが付加される場合に、Oracle Traffic Directorでセッション持続を履行できます。WebLogic Server 10.3.6.2以上、12.1以上、GlassFish 2.0以上などのオリジン・サーバーには、このJRoute cookieをURIに付加する機能が備わっています。そのため、Oracle Traffic DirectorでURIベースのセッション持続を維持できるのは、これらのオリジン・サーバーを使用している場合に限定されます。