目次 前 次 PDF


トラブルシューティング

トラブルシューティング
このトピックには次の項が含まれます:
注意:
Oracle Tuxedo CORBA JavaクライアントとOracle Tuxedo CORBA JavaクライアントORBはTuxedo 8.1で非推奨になり、サポートされなくなりました。すべてのOracle Tuxedo CORBA JavaクライアントおよびOracle Tuxedo CORBA JavaクライアントORBのテキスト・リファレンスとコード・サンプルは、サード・パーティ製のJava ORBライブラリを実装または実行する際の参考や、プログラマの参照用としてのみ使用してください。
サード・パーティのCORBA Java ORBのテクニカル・サポートは、各ベンダーによって提供されます。Oracle Tuxedoでは、サード・パーティのCORBA Java ORBに関する技術的なサポートまたはドキュメントは提供していません。
ULOGおよびORBトレース機能の使用
通常、Object Request Broker (ORB)は、重大な障害をULOGファイルに書き込みます。CORBA C++ ORBでは、ORB内部トレース機能を有効にすることで、ULOGファイルの情報以外の情報を参照することもできます。
ULOGファイルを見ると、リモートORBプロセスはデフォルトでは、データをAPPDIRULOGファイルには書き込みません。
UNIXでは、リモートORBは、情報をカレント・ディレクトリのULOGファイルに書き込みます。
Windows 2003では、リモートORBは、情報をc:¥ulogディレクトリのULOGファイルに書き込みます。
ULOGPFX環境変数を設定すると、リモートORB用のULOGファイルの場所を管理できます(たとえば、ULOGファイルの場所をAPPDIRに設定し、すべての情報が同じULOGファイルに格納されるようにすることができます)。ULOGPFX環境変数を次のように設定します。
Windows 2003
set ULOGPFX=%APPDIR%¥ULOG
UNIX
setenv ULOGPFX $APPDIR/ULOG
ORBトレース機能を有効にするには、次の手順を実行します。
1.
APPDIRtrace.datという名前のファイルを作成します。trace.dat内で、all=onが指定されている必要があります。
2.
次のコマンドを使用してOBB_TRACE_INPUT環境変数を設定し、trace.datファイルを参照してからアプリケーションを実行するようにします。
set OBB_TRACE_INPUT=%APPDIR%¥trace.dat
ORBトレース機能を別のファイルに送信する場合、次の行をtrace.datファイルに追加します。
output=obbtrace%p.log
このコマンドは、トレース出力を、実行中のプロセスにちなんだ名前のファイルに送信します。たとえば、UNIXのORBトレース機能を、NFSがマウントされたドライブに対して使用する場合に実行できます。この場合、トレース文ごとにユーザー・ログがファイルを開き、書き込み、閉じるために、トレースのパフォーマンスは遅くなります。
CORBA::ORB_initの問題
ORB_initルーチンは、内部ORBトレース機能を実行しないので、無効な引数の処理に対するトレース出力を確認できません。したがって、ORB_initルーチンに渡された引数を再確認する必要があります。
ORB_initルーチンの実行中にCORBA::BAD_PARAM例外が発生した場合は、必要なすべての引数に値が指定されていることを確認してください。また、特定の有効な値のセットからの値が必要な引数に正しい値があることも確認してください。ORB_initルーチンの引数の値では、大文字/小文字が区別されるので注意してください。
CORBA::NO_PERMISSION例外が発生し、SSL引数がORB_initルーチンに指定された場合、セキュリティ・ライセンスが有効になっていることを確認してください。また、指定した暗号化レベルが、セキュリティ・ライセンスでサポートされている暗号化レベルを超えていないことを確認してください。
ORB_initルーチンの実行中にCORBA::IMP_LIMIT例外が発生した場合は、システム・プロパティのORBportORBSecurePortに同じ値が指定されていることを確認してください。
ORB_initルーチンの実行中にCORBA::Initialize例外が発生した場合は、OrbIdまたはconfigsetが有効であることを確認してください。
Secure Sockets Layer (SSL)引数がORB_initルーチンに渡されている場合、ORBは、SSLプロトコルをロードおよび初期化しようとします。SSL引数が渡された場合、ORBは、SSLプロトコルを初期化しようとします。
ORBは、Bootstrapオブジェクトの新しいURLアドレス形式を認識しないので、corbalocまたはcorbalocs URLアドレス形式を指定した場合、ORBは、ORB_initルーチンの実行時にSSLプロトコルのロードを試行しません。
SSL引数をORB_initルーチンに対して指定した場合は、次をチェックします。
SSL引数に対して指定した値が、互いに競合しないこと、またはほかのORB引数と競合しないこと。
ORBがネイティブ・プロセスかどうか。ORBがネイティブ・プロセスの場合、SSL引数はサポートされません。
maxCryptoシステム・プロパティ用に指定された値が、minCryptoシステム・プロパティ用に指定された値より低いこと。この2つのプロパティの値は、ライセンスに適した範囲内にある必要があります。
アプリケーション制御の不正なSSL構成パラメータ。ORB_initルーチンはデジタル証明書のルックアップを実行しないので、不足しているファイル、またはダイナミック・ライブラリがロードされない可能性のある破損したファイルがないか確認してください。また、ダイナミック・ライブラリがロードされていることも確認してください。ORBトレース機能は、ダイナミック・ライブラリがロードされたかどうかに関する情報を提供します。
問題が続く場合は、ORBトレース機能を有効にします。ORBトレース機能は、liborbsslダイナミック・ライブラリがロードされて初期化されたときに発生するSSLの障害をログに記録します。
パスワード認証の問題
パスワード認証にcorbalocs URLアドレス形式を使用しているときにクライアント・アプリケーションが失敗した場合は、次をチェックします。
構成の手順が正しく実行されたかどうか。必要な構成手順のリストについては、「SSLプロトコルの構成」および「認証の構成」を参照してください。
初期化エラーが発生したかどうか。SSLシステム・プロパティをORB_initルーチンに対して指定すると、次の場合にエラーが発生します。
IIOPリスナー/ハンドラが使用不可能な場合。ORBトレース・ログには、失敗した接続の試行が記録されます。
IIOPリスナー/ハンドラは使用可能だが、SSLプロトコルをサポートしていない場合。ULOGファイルには、非GIOPメッセージを受信したことが記録されます。
IIOPリスナー/ハンドラが使用可能で、SSLプロトコル用に構成されているが、SSL接続を確立できなかった場合。IIOPリスナー/ハンドラがサポートしている暗号化レベルの範囲と、クライアント・アプリケーションで必要な暗号化レベルの範囲が一致していない場合に、このエラーが発生します。
IIOPリスナー/ハンドラがSSLプロトコル用に構成されているものの、セキュリティで保護されている接続を示すcorbalocs接頭辞なしにCORBAクライアント・アプリケーションがTOBJADDRオブジェクトを使用している場合に、ULOGファイルに、非GIOPメッセージを受信したことが記録されます。
証明書による認証の問題
証明書による認証にcorbalocs URLアドレス形式を使用しているときにクライアント・アプリケーションが失敗した場合は、次をチェックします。
構成の手順が正しく実行されたかどうか。必要な構成手順のリストについては、6-1ページの「SSLプロトコルの構成」および7-1ページの「認証の構成」を参照してください。
初期化エラーが発生したかどうか。
SSLシステム・プロパティをORB_initルーチンに対して指定すると、次の場合にエラーが発生します。
IIOPリスナー/ハンドラが使用不可能な場合。ORBトレース・ログには、失敗した接続の試行が記録されます。
IIOPリスナー/ハンドラは使用可能だが、SSLプロトコルをサポートしていない場合。ULOGファイルには、非GIOPメッセージを受信したことが記録されます。
IIOPリスナー/ハンドラが使用可能で、SSLプロトコル用に構成されているが、SSL接続を確立できなかった場合。IIOPリスナー/ハンドラがサポートしている暗号化レベルの範囲と、クライアント・アプリケーションで必要な暗号化レベルの範囲が一致していない場合に、このエラーが発生します。また、クライアント・アプリケーションが、IIOPリスナー/ハンドラの証明書チェーンを信頼しない場合、またはクライアント・アプリケーションがIIOPリスナー/ハンドラから証明書を受け取らなかった場合にも、エラーが発生します。エラーは、ULOGファイルに書き込まれ、ORBトレース出力にも表示されます。
エラーが発生しない場合、問題は認証プロセスにあります。ULOGファイルには、問題を示す次のエラー文のいずれかが含まれています。
Couldn't connect to an LDAP server
Couldn't find a filter that matched the client certificate
The client certificate was not found in LDAP
The private key file could not be found
The passphrase used to open the private key is not correct
The public key from the client certificate did not match the private key
証明書に関する他の問題が発生する場合もあります。発生の可能性がある証明書エラーの種類については、11-5ページの「Tobj::Bootstrap:: resolve_initial_referencesの問題」を参照してください。
注意:
初期化プロセスの時点で発生した障害は、IIOPリスナー/ハンドラの問題ではありません。
Tobj::Bootstrap::
resolve_initial_referencesの問題
corbalocまたはcorbalocs URLアドレス形式でTobj::Bootstrap::resolve_initial_referencesを実行しているときに障害が発生した場合、CORBA::InvalidDomain例外が発生します。この例外は、内部で発生するCORBA::NO_PERMISSION例外またはCORBA::COMM_FAILURE例外をマスクする場合があります。ULOGファイルを参照し、ORBトレース機能を有効にしてエラーの詳細を確認してください。次のエラーが発生する可能性があります。
IIOPリスナー/ハンドラが使用不可能な場合、ORBトレース・ログには、失敗した接続試行が記録されます。
IIOPリスナー/ハンドラは使用可能だが、SSLプロトコルをサポートしていない場合、ULOGファイルには、非GIOPメッセージを受信したことが示されます。
IIOPリスナー/ハンドラが使用可能で、SSLプロトコル用に構成されているが、SSL接続を確立できなかった場合。IIOPリスナー/ハンドラがサポートしている暗号化レベルの範囲と、クライアント・アプリケーションで必要な暗号化レベルの範囲が一致していない場合に、このエラーが発生します。
IIOPリスナー/ハンドラが、証明書をユーザー名/パスワードの組合せにマップできなかった場合。CORBAアプリケーションのセキュリティのレベルがUSER_AUTHに設定されていること、および指定したユーザー名が、認証呼出しに渡されたプリンシパル名に一致していることを確認します。また、ユーザー名が30文字を超えていないこともチェックしてください。
他の証明書に関する問題が発生する場合もあります。発生の可能性がある証明書エラーの種類については、11-8ページの「デジタル証明書のトラブルシューティングのヒント」を参照してください。
IIOPリスナー/ハンドラの起動の問題
ここでは、IIOPリスナー/ハンドラの起動時に発生する可能性がある問題について説明します。
IIOPリスナー/ハンドラを起動しているときに障害が発生した場合、ULOGファイルをチェックしてエラーの詳細を確認します。IIOPリスナー/ハンドラは、CLOPTパラメータで指定したSSL引数の値が有効かどうかを確認します。値のいずれかが無効な場合、対応するエラーがULOGファイルに記録されます。このチェックは、ORBで実行される引数チェックに似ています。
IIOPリスナー/ハンドラは、-mオプションが指定されないかぎりプロセスを開始しません。ISHは、SSLライブラリを実際にロードおよび初期化するプロセスです。ISHプロセスのSSLライブラリのロードおよび初期化で問題が発生した場合、ISHプロセスがクライアント・アプリケーションからの着信リクエストの処理を開始するまで、エラーはULOGファイルに記録されません。
IIOPリスナー/ハンドラ・プロセスの起動で問題が発生したと思われる場合は、ULOGファイルを確認してください。
構成の問題
ここでは、セキュリティ使用時に発生する一般的な構成の問題を解決する方法について説明します。
ISLコマンドのORB -ORBpeerValidateコマンド行オプションと-vオプションは、ピア検証の規則のチェックを制御しません。このシステム・プロパティとオプションは、プリンシパルの接続先マシンのホスト名に対するピア証明書で指定されたホスト名のチェックのみを制御します。
インストールしたキットでピア検証の規則を無効にする唯一の方法は、%TUXDIR%\udataobj\security\certs\peer_val.rulに空のファイルを作成することです。CORBAアプリケーションを構築するスクリプトを記述している場合でも、スクリプトでpeer_val.rulファイルを登録することはできません。
IIOPリスナー/ハンドラで再ネゴシエーション間隔を有効にしている場合、ISLコマンドのオプションが-rではなく-Rであることを確認します。-rを使用する場合、IIOPリスナー/ハンドラはSSLプロトコルを使用しますが、再ネゴシエーション間隔は使用されません。また、ULOGファイルには、IIOPリスナー/ハンドラで不明なオプションを指定したことが記録されます。
IIOPリスナー/ハンドラが再ネゴシエーションを実行しているかどうかを判定する別の方法は、クライアント側でORBトレース機能を有効にし、暗号スイート・ネゴシエーション・コールバックが構成済の再ネゴシエーション間隔を呼び出しているかどうかをチェックすることです。再ネゴシエーションが発生するためには、クライアント・アプリケーションがリクエストを送信している必要があります。
CORBAアプリケーションのUBBCONFIGファイルでSECURITYパラメータをAPP_PW以上になるように定義しており、(相互認証ではなく)SSLプロトコルを使用するようにIIOPリスナー/ハンドラを構成している場合、IIOPリスナー/ハンドラと通信するためにcorbalocs URLアドレス形式でパスワード認証を使用する必要があります。証明書による認証の使用を試行しても、IIOPリスナー/ハンドラは、SSL接続を確立するときにプリンシパルに証明書を要求しないので、IIOPリスナー/ハンドラは、プリンシパルのIDをOracle TuxedoのIDにマップできません。
SSLプロトコルでコールバック・オブジェクトを使用する場合の問題
共同クライアント/サーバー・アプリケーションがあり、そのクライアント側でcorbalocs URLアドレス形式を使用するか、資格証明を要求してセキュリティ要件を指定している場合、ORB_initルーチンで-ORBsecurePortシステム・プロパティを使用して、使用するセキュリティ保護ポートを指定する必要があります。
-ORBsecurePortシステム・プロパティを指定しない場合、CORBA::NO_PERMISSION例外が発生してサーバー登録が失敗します。これが問題かどうかを検証するには、ORBトレース機能を有効にして、次のトレース出力を探します。
TCPTransport::Listen: FAILURE: Attempt to listen on clear port while Credentials require SSL be used
コールバック・オブジェクトでSSLプロトコルを使用する場合、共同クライアント/サーバー・アプリケーションは、証明書による認証でSecurityLevel2::PrincipalAuthenticator::authenticate()メソッドを使用する必要があります。それ以外の場合、共同クライアント/サーバー・アプリケーションは、IIOPリスナー/ハンドラ(ここでは、SSL接続のイニシエータ)に対して自身を識別するための証明書を持ちません。
デジタル証明書のトラブルシューティングのヒント
通常、デジタル証明書の問題は、次の場合に起こります。
IIOPリスナー/ハンドラの証明書チェーンにあるデジタル証明書のいずれか1つがtrust_ca.cerファイルに定義されている認証局から受け取ったものではない場合。trust_ca.cerファイルの認証局が無効な場合に、問題が発生することがあります。
クライアント・アプリケーションに接続されたIIOPリスナー/ハンドラが、ホスト一致チェックを実行したときにIIOPリスナー/ハンドラのデジタル証明書で指定したホスト名と同じでない場合。IIOPリスナー/ハンドラ名は、IIOPリスナー/ハンドラの固有名のCommonName属性で指定します。ホスト名とCommonName属性は、正確に一致している必要があります。
-ORBpeerValidateシステム・プロパティをnoneに設定し、再度ORB_initルーチンを実行すると、このエラーを検証できます。
IIOPリスナー/ハンドラの証明書チェーンにあるデジタル証明書のいずれか1つが、指定したピア検証の規則と一致していない場合。
IIOPリスナー/ハンドラのデジタル証明書が無効の場合。IIOPリスナー/ハンドラのデジタル証明書は、改ざんされた場合、期限切れの場合、または発行元の認証局が期限切れの場合、無効になります。
理由がわからずにデジタル証明書が拒否された場合は、次の手順を実行します。
1.
Microsoft Explorerなどのビューアでデジタル証明書を開きます。
2.
デジタル証明書のKeyUsageプロパティおよびBasicConstraintsプロパティを確認します。感嘆符が付いた黄色い三角形のマークは、そのプロパティに問題があることを示します。プロパティにそのマークが付いたデジタル証明書は、Oracle Tuxedoソフトウェアによって拒否されます。
3.
デジタル証明書のそのプロパティに問題がない場合、証明書チェーン内の次のデジタル証明書のプロパティをチェックします。証明書チェーン内のすべてのデジタル証明書に対して、そのプロパティを検証するまで、この手順を繰り返します。
 

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved