この項では、次の問題の解決策を示します。
このエラーは、構成内の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リスナー・ポートが他のプロセスで使用中の場合は、ポートを解放するか、9.3項「HTTPリスナーの変更」の説明に従って変更します。
このエラーは、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
ドキュメントを参照してください。
このエラーは、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を設定または変更した後、まず、実行中のインスタンスを停止し、変更内容をデプロイして、次にインスタンスを起動します。
このエラーは、構成済SNMPサブエージェント・ポートが別のプロセスによって使用中である場合に通常発生します。
次のメッセージが管理サーバー・ログに書き込まれます。
OTD-63410 The SNMP subagent failed to start.
次のコマンドを使用して、ノード上のSNMPサブエージェントの構成済ポートが別のプロセスによってすでに使用されていないかを確認します。
> netstat -npl --udp | grep :port
この問題を解決するには、12.6.2項「SNMPサブエージェントの構成」の説明に従い、INSTANCE_HOME
/admin-server/config/snmpagt.conf
ファイルでポートを解放するか変更します。
このエラーは、次の状況でtadm
コマンドを実行すると発生します。
--port
オプションに指定された値が正しくありません。
--port
オプションが指定されておらず、管理サーバーが、デフォルトのSSLポート8989
以外のポートで実行されています。
--port
オプションに正しい値を指定してコマンドを再度実行します。
Oracle Traffic Directorインスタンスの起動時、特定のパラメータの値(キープ・アライブ接続の最大数、接続キューのサイズ、オリジン・サーバーへの最大接続数)が、システムのファイル・ディスクリプタ制限に基づき自動的に割り当てられます。
ファイル・ディスクリプタ制限が非常に高い場合、未定義パラメータに自動割り当てされる値は、必要以上に高くなり、その結果、Oracle Traffic Directorで過度なメモリー量が消費されます。この問題を回避するには、キープ・アライブ接続の最大数(14.5.3項)、接続キューのサイズ(14.3.4項)および個々のオリジン・サーバーへの最大接続数(7.3項)を明示的に構成します。
このLinuxのオペレーティング・システム・エラーは、割り当てられたファイル・ディスクリプタ数がシステムの制限に到達すると発生します。
次のメッセージがサーバー・ログに書き込まれます。
[ERROR:16] [OTD-10546] Insufficient file descriptors for optimum configuration.
このエラーを回避するには、Linuxのファイル・ディスクリプタ制限をデフォルトの1024から合理的な数に増やします。詳細は、14.2項「ファイル・ディスクリプタ制限のチューニング」を参照してください。
このエラーは、構成の一時ディレクトリを変更した後、インスタンスを停止せずに変更デプロイし、その後インスタンスを停止しようとすると発生します。一時ディレクトリは、構成のインスタンスのプロセスIDおよびソケット情報が格納される(管理ノード上)のディレクトリです。
このエラーが発生すると、次のメッセージがサーバー・ログに書き込まれます。
OTD-63585 An error occurred while stopping the server. For details, see the server log.
このエラーを回避する手順
構成の一時ディレクトリを変更した場合、構成のすべてのインスタンスをまず停止して、変更をデプロイし、次にインスタンスを起動します。
この問題を回避する手順
Oracle Traffic Directorインスタンスを停止します。
次のいずれかを実行して、構成の現在の一時ディレクトリを検出します。
次の例に従い、get-config-prop
CLIコマンドを実行します。
tadm> get-config-prop --config=soa temp-path
/tmp/net-test-a46e5844
管理コンソールにログインし、必要な構成を選択し、「詳細設定」を選択します。結果のページで、「一時ディレクトリ」フィールドを探します。
一時ディレクトリへのパスを記録します。
次のコマンドを実行して、実行中のインスタンスのプロセスIDを検出します。
cat temp_dir/pid
temp_dir
は、手順1で記録した一時ディレクトリへのフル・パスです。
このコマンドによって戻されるプロセスIDを記録します。
次のコマンドを実行して、プロセスを停止します。
kill pid
pid
は、手順2で記録したプロセスIDです。