ページの先頭行へ戻る
Interstage Application Server アプリケーション作成ガイド(CORBAサービス編)
Interstage

9.2.3 バインディングの作成

バインディングオペレーションはオブジェクトをバインディング名と関連付け、ネーミングコンテキストに登録します。バインディング名に関連付けられたバインディングは、resolveオペレーションを使用して獲得することができます。ネーミングサービスは、バインディングを作成するbind、rebind、bind_context、rebind_context、bind_new_contextの5つのオペレーションをサポートします。このうち、bind_new_contextオペレーションについては、“9.2.6 ネーミングコンテキストの作成”を参照してください。

void bind(in Name n, in Object obj)
     raises(NotFound, CannotProceed, InvalidName, AlreadyBound); 
void rebind(in Name n, in Object obj) 
     raises(NotFound, CannotProceed, InvalidName); 
void bind_context(in Name n, in NamingContext nc) 
     raises(NotFound, CannotProceed, InvalidName, AlreadyBound); 
void rebind_context(in Name n, in NamingContext nc) 
     raises(NotFound, CannotProceed, InvalidName);

bind

ネーミングサービスに、指定されたバインディング名でオブジェクトリファレンスを登録します。登録されるバインディングは、オブジェクトタイプバインディングです。
指定された名前のバインディングが存在する場合は、AlreadyBound例外が発生します。

rebind

ネーミングサービスに、指定されたバインディング名でオブジェクトリファレンスを登録します。すでに同じ名前のバインディングが存在する場合は、古いバインディングは削除され、新しいバインディングが登録されます。登録されるバインディングは、オブジェクトタイプバインディングです。
すでに同一のバインディング名で登録されている場合、以前のバインディングはタイプがオブジェクトタイプである必要があります。それ以外の場合は、NotFound例外が発生し、whyにnot_objectが設定されます。

bind_context

ネーミングサービスに、指定されたバインディング名でネーミングコンテキストのオブジェクトリファレンスを登録します。登録されるバインディングは、コンテキストタイプのバインディングです。登録するネーミングコンテキストとしてnilリファレンスが指定された場合は、BAD_PARAMシステム例外が発生します。
指定された名前のバインディングが存在する場合は、AlreadyBound例外が発生します。

rebind_context

ネーミングサービスに、指定されたバインディング名でネーミングコンテキストのオブジェクトリファレンスを登録します。すでに同じ名前のバインディングが存在する場合、古いバインディングは削除され、新しいバインディングが登録されます。登録されるバインディングは、コンテキストタイプのバインディングです。

登録するネーミングコンテキストとしてnilリファレンスを指定された場合、BAD_PARAMシステム例外が発生します。
すでにバインディングが存在する場合、以前のバインディングのタイプはコンテキストタイプである必要があります。それ以外の場合、NotFound例外が発生し、whyにnot_contextが設定されます。

rebind_contextを使用する場合、以前に登録されていたネーミングコンテキストのバインディングが削除されます。したがって、このネーミングコンテキストが他のネーミングコンテキストに登録されていなければ、このネーミングコンテキストはどのネーミングコンテキストにも登録されていない状態となります。不要なネーミングコンテキストの場合は、rebind_contextを実行する前にdestroyオペレーションでネーミングコンテキストを削除してください。