![]() ![]() ![]() ![]() ![]() ![]() ![]() |
注意: | 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 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
ほかの認証に関する問題が発生する場合もあります。発生の可能性がある認証エラーの種類については、「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
ルーチンを実行すると、このエラーを検証できます。
理由がわからずにデジタル証明書が拒否された場合は、次の手順を実行します。
![]() ![]() ![]() |