4.4.9. オブジェクト多重化を利用するためのインタフェース |
本書では、オブジェクト多重化を利用する場合に特化したインタフェースについて説明します。
4.4.9.1. オブジェクト多重化について |
1つのオブジェクトリファレンスに複数のホスト情報を格納したものを、多重化オブジェクトと呼びます。多重化オブジェクトは、WebOTX Object Broker 独自の機能です。
4.4.9.2. Ob_PeerListクラス |
多重化情報を格納するためには、次の構造体を使用します。
struct Ob_Peer { CORBA::String_var host; // 多重化先のホスト名 CORBA::UShort port; // 多重化先のポート番号 };
Ob_PeerListクラスは、Ob_Peerのリストです。このクラスは、多重化したオブジェクトリファレンスを作成するためのメソッド(CORBA::Object::__to_multiplex_object)の引数などで使用します。
4.4.9.3. CORBA::Objectクラス |
__to_multiplex_object | 多重化したオブジェクトリファレンスを作成する |
__is_multiplex_object | 多重化オブジェクトかどうか調べる |
__get_peer_list | 多重化情報を取得する |
__use_connection_roundrobin | コネクションラウンドロビン機能を使用するかどうかを指定する |
__select_connection | 呼び出しを行なうホスト、ポートを指定する |
__unselect_connection | 呼び出しを行なうホスト、ポートの指定を解除する |
__close_connection | コネクションを切断する |
4.4.9.4. そのほかの関数 |
Ob_use_multi_connection | コネクションの多重化を行なうかどうかを指定する |
Ob_max_connection | コネクションの最大接続数を設定する |
CORBA::Object::__to_multiplex_object - 多重化したオブジェクトリファレンスを作成する
#include <orb.h> CORBA::Object_ptr CORBA::Object::__to_multiplex_object( const Ob_PeerList& peer_list, CORBA::Boolean retain_self = (CORBA::Boolean)1, CORBA::Environment& env = Ob_default_environment() );
多重化情報を元にして多重化したオブジェクトリファレンスを作成します。
引数peer_listには、多重化するホスト、ポートのリストを指定します。
引数retain_selfには、自ホストを多重化対象にする場合は、CORBA_TRUEを指定し、そうでない場合は、CORBA_FALSEを指定します。
多重化されたオブジェクトリファレンスを返します。
以下の例外がthrowされます。
CORBA::NO_MEMORY | : | メモリが足りません |
CORBA::Object::__is_multiplex_object - 多重化オブジェクトかどうか調べる
#include <orb.h> CORBA::Boolean CORBA::Object::__is_multiplex_object( CORBA::Environment& env = Ob_default_environment() );
多重化オブジェクトかどうかを調べます。
多重化オブジェクトの場合は、CORBA_TRUEを返します。そうでない場合は、CORBA_FALSEを返します。
以下の例外がthrowされます。
CORBA::NO_MEMORY | : | メモリが足りません |
CORBA::Object::__get_peer_list - 多重化情報を取得する
#include <orb.h> Ob_PeerList_ptr CORBA::Object::__get_peer_list( CORBA::Environment& env = Ob_default_environment() );
多重化情報を取得します。
多重化情報へのポインタを返します。取得した多重化情報の解放責任は、呼び出し側にあります。
以下の例外がthrowされます。
CORBA::NO_MEMORY | : | メモリが足りません |
CORBA::Object::__use_connection_roundrobin - コネクションラウンドロビン機能を使用するかどうかを指定する
#include <orb.h> void CORBA::Object::__use_connection_roundrobin( CORBA::Boolean flag, CORBA::Environment& env = Ob_default_environment() );
コネクションラウンドロビン機能を使用するかどうかを指定します。個々のオブジェクトに対して設定します。
引数flagには、コネクションラウンドロビンを使用する場合は、CORBA_TRUEを指定します。
ありません。
以下の例外がthrowされます。
CORBA::BAD_OPERATION | : | 多重化されていないオブジェクトに対して呼び出しを行ないました |
[ リファレンス集 運用管理・設定編 > 1. コンフィグレーション(設定一覧) > 1.10. Object Broker > 1.10.1. Object Broker設定項目・設定方法 ]
CORBA::Object::__select_connection - 呼び出しを行なうホスト、ポートを指定する
#include <orb.h> void CORBA::Object::__select_connection( const char* host, CORBA::UShort port, CORBA::Environment& env = Ob_default_environment() );
呼び出しを行なうホスト、ポートを指定します。
このメソッドを実行すると、以後の呼び出しは指定したホスト、ポートへのみ行なわれます。
引数hostには、呼び出しを行なうホスト名、引数portには、呼び出しを行なうポート番号を指定します。
ありません。
以下の例外がthrowされます。
CORBA::BAD_PARAM | : | 引数で指定したホスト、ポートの組は存在しません |
CORBA::BAD_OPERATION | : | 多重化されていないオブジェクトに対して呼び出しを行ないました |
CORBA::NO_MEMORY | : | メモリが足りません |
CORBA::Object::__unselect_connection - 呼び出しを行なうホスト、ポートの指定を解除する
#include <orb.h> void CORBA::Object::__unselect_connection( CORBA::Environment& env = Ob_default_environment() );
呼び出しを行なうホスト、ポートの指定を解除します。
このメソッドを実行すると、以後の呼び出しはコネクションラウンドロビンします。
ありません。
以下の例外がthrowされます。
CORBA::BAD_OPERATION | : | 多重化されていないオブジェクトに対して呼び出しを行ないました |
CORBA::Object::__close_connection - コネクションを切断する
#include <orb.h> CORBA::Boolean CORBA::Object::__close_connection( CORBA::Environment& env = Ob_default_environment() );
コネクションを切断します。
正常に切断できた場合は、CORBA_TRUEを返します。そうでない場合は、CORBA_FALSEを返します。
起こりません。
Ob_use_multi_connection - コネクションの多重化を行なうかどうかを指定する
#include <orb.h> void Ob_use_multi_connection( CORBA::Boolean flag, CORBA::Environment& env = Ob_default_environment() );
多重化されたオブジェクトリファレンスを使用する場合に、コネクションの多重化を行なうかどうかを指定します。
引数flagには、コネクションの多重化を行なう場合は、CORBA_TRUEを指定します。
ありません。
起こりません。
[ リファレンス集 運用管理・設定編 > 1. コンフィグレーション(設定一覧) > 1.10. Object Broker > 1.10.1. Object Broker設定項目・設定方法 ]
Ob_max_connection - コネクションの最大接続数を設定する
#include <orb.h> void Ob_max_connection( CORBA::ULong max, CORBA::Environment& env = Ob_default_environment() );
コネクションの最大接続数を設定します。
引数maxには、最大接続数を指定します。
ありません。
以下の例外がthrowされます。
CORBA::BAD_OPERATION | : | CORBA::ORB_initの後に呼び出しを行ないました |
[ リファレンス集 運用管理・設定編 > 1. コンフィグレーション(設定一覧) > 1.10. Object Broker > 1.10.1. Object Broker設定項目・設定方法 ]
CORBA::ORB_initの前に呼び出す必要があります。