11.1.4 サポートされているコールバック・オブジェクト・モデル
Oracle Tuxedo CORBAは、4種類のコールバック・オブジェクトをサポートしており、その中で一般的である3種類に対してはラッパーを提供しています。これらのオブジェクトは、POAポリシーにおける3つの組合せに対応しています。POAポリシーは、使用可能なオブジェクトの型と、オブジェクト参照の型の両方を制御します。
適用できるPOAポリシーは、以下のとおりです:
- LifeSpanPolicy。オブジェクト参照の有効期間の長さを制御します。
- IdAssignmentPolicy。ユーザーとシステムのどちらが
ObjectIdを割り当てるかを制御します。
これらのオブジェクトについては、ORBとPOAによる扱われ方の詳細ではなく、主に動作特性との関連で説明します。これらの詳細は、直接的なORBおよびPOAの呼出し(CORBAサーバーに関して特別な知識が少し必要)を使用するか、またはORBおよびPOAの呼出しを隠ぺいするOracleWrapper Callbacksインタフェース(詳細については考慮しないユーザー向け)を使用して、以下のセクションで説明します。
- Transient/SystemId - オブジェクト参照は、クライアント・プロセスの有効期間中のみ有効です。
ObjectIdはクライアント・アプリケーションによって割り当てられるのではなく、システムによって割り当てられる、一意の値です。この型のオブジェクトは、クライアントが終了するまでの間のみクライアントによって受信される呼出しに有用です。(対応するPOA LifeSpanPolicy値はTRANSIENTで、IdAssignmentPolicyはSYSTEM_IDです。) -
Persistent/SystemId - オブジェクト参照は、複数回のアクティブ化にわたって有効です。
ObjectIdはクライアント・アプリケーションによって割り当てられるのではなく、システムによって割り当てられる、一意の値です。この型のオブジェクトおよびオブジェクト参照は、クライアントがある一定期間内で起動したり終了する場合に有用です。稼動中のクライアントは、その特定のオブジェクト参照に対するコールバック・オブジェクトを受信できます。通常、クライアントは一度オブジェクト参照を作成し、それを自身の恒久的なストレージに保存し、そのオブジェクトが復帰するたびに、オブジェクトのサーバントを再アクティブ化します。たとえばOracle Tuxedo CORBA通知サービスのアプリケーションと共に使用した場合、これらは永続的なサブスクリプションの概念に対応するコールバックです。つまり、通知サービスはコールバック・リファレンスを記憶しており、クライアントが起動して再びイベントを受信する準備が整ったことを宣言すると、イベントを送達します。これにより、通知サービスのサブスクリプションは、クライアントの障害やオフライン時間の影響を受けずに済みます。(対応するPOAポリシーの値は、
PERSISTENTおよびSYSTEM_IDです。) - Persistent/UserId -
ObjectIdがクライアント・アプリケーションによって割り当てられる必要があることを除いては、Persistant/SystemIdと同じです。該当するObjectIdとしては、たとえばクライアントに対してのみ意味を持つデータベース・キーなどが考えられます。(対応するPOAポリシーの値は、PERSISTENTおよびUSER_IDです。)
ノート:
Transient/UserIdポリシーの組合せは、特に重要なものであるとはみなされません。永続的なケースのどちらかに類似した方式で、ユーザーがPOAを使用して自給することは可能ですが、Oracle Tuxedoラッパーは、特にそのために有用なわけではありません。Oracle Tuxedo CORBAのネイティブ共同クライアント/サーバーでは、永続ポリシーはどちらもサポートされません。一時ポリシーのみがサポートされます。親トピック: 概要