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