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

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オペレーションでネーミングコンテキストを削除してください。