bea ホーム | 製品 | dev2dev | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > Tuxedo > Tuxedo CORBA プログラミング・リファレンス > CORBA API |
Tuxedo CORBA プログラミング・リファレンス
|
概要
指定された初期状態で特定の型の方針オブジェクトの新しいインスタンスを作成します。
C++ バインディング
void CORBA::ORB::create_policy (
in PolicyType type,
in any val);
引数
例外
説明
このオペレーションは、指定された初期状態で特定の型の方針オブジェクトの新しいインスタンスを作成するために呼び出します。方針の要求された型と内容を解釈できなかったために、create_policy が新しい方針オブジェクトのインスタンス化に失敗した場合、適切な理由により方針エラー例外が発生します。
リモート・クライアントでは IIOP を使用しているため、コールバックを使用して BidirectionalPolicy 引数をリモート・クライアントに指定します。この引数は、コールバックを使用するネイティブ・クライアント、または BEA Tuxedo サーバには使用しません。これは、BEA Tuxedo ドメイン内部のマシンが個別に通信するためです。
GIOP 1.2 より前では、双方向方針は TCP/IP を使用する IIOP では利用できませんでした。GIOP 1.0 および 1.1 の通信は一方向のため、要求がクライアントからサーバに送信され、応答がサーバからクライアントに送信されるだけでした。サーバが要求をクライアント・マシンに戻す、つまりコールバックする場合、サーバ・マシンでは別の一方向の接続を確立する必要がありました (ここでいう「接続」とは、オペレーティング・システムのリソースのことであり、物理的な個別のワイヤや接続パスのことではありません。接続ではリソースを使用するので、接続数を最小限にすることが求められます)。
最新の BEA Tuxedo C++ ソフトウェアでは、GIOP 1.2 をサポートしています。これにより、要求の送信と受信の両方で TCP/IP 接続を再利用できるようになりました。接続を再利用することにより、リモート・クライアントが BEA Tuxedo ドメインにコールバック・リファレンスを送信するときにリソースを節約できます。共同クライアント/サーバでは、接続で BEA Tuxedo ドメインに要求を送信します。その際、コールバックの要求に接続を再利用することができます。接続を再利用しない場合、コールバック要求では別の接続を確立しなければなりません。
接続の再利用を可能にするために、ORB/POA が用意されています。ORB/POA は、コールバック・オブジェクト・リファレンスを作成します。このオブジェクト・リファレンスのサーバ (特にコールバックの場合は、リファレンスの作成元) では、セキュリティを考慮して再利用を無効にすることができます。つまり、このマシンのコールバック・サーバではセキュリティを必要としますが、リモート・サーバではセキュリティを必要としないため、このマシンからリモート・サーバにクライアントの要求を送信接続する際はセキュリティは不要になります。このように、接続ベースで部分的にセキュリティが確立されるので、別の接続を使用する場合に限って受信時のセキュリティを確立することができます。リモート・サーバでセキュリティが必要な場合、またはそのセキュリティに相互認証がある場合、通常はローカル・サーバで接続の再利用を有効にしても安全と認識されます。
プロセスがサーバ (この場合、共同クライアント/サーバ) として機能してオブジェクト・リファレンスを作成する場合は、常に接続の再利用はサーバ・エンドで行われます。そのため、接続を再利用することを ORB に通知する必要があります。これは、オブジェクト・リファレンスを作成する POA の方針を設定することによって行います。デフォルトの方針では、再利用は無効になっています。したがって、再利用するための方針オブジェクトを指定しない限り、POA では再利用ができません。
このデフォルトでは、CORBA バージョン 2.3 より前に記述されたコードとの下位互換性が維持されています。このようなコードでは、再利用が可能であることは認識されないので、再利用に関するセキュリティのインプリメンテーションを考慮する必要はありません。ただし、変更が加えられていないコードでは、ユーザがセキュリティを考慮して明示的に方針を転換しない限り、引き続き再利用は無効のままになります。
再利用を有効にするには、create_policy オペレーションを使用して再利用を可能にする方針オブジェクトを作成し、その方針オブジェクトを POA 作成用の方針リストの一部として使用します。
戻り値
特にありません。
例
#include <BiDirPolicy_c.h>
BiDirPolicy::BidirectionalPolicy_var bd_policy;
CORBA::Any allow_reuse;
allow_reuse <<= BiDirPolicy::BOTH;
CORBA::Policy_var generic_policy =
orb->create_policy( BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE,
allow_reuse );
bd_policy = BiDirPolicy::BidirectionalPolicy::_narrow(
generic_policy );
上記の例では、create_poa オペレーションに渡された PolicyList の中に bd_policy を挿入しています。
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |