ロードバランスは、ロードバランスオプションとネーミングサービスに登録されたロードバランスオブジェクトグループの2つのインタフェースを有します。
ロードバランスオプションインタフェース
ネーミングサービスと連携して、ロードバランスオブジェクトグループの登録、削除、検索などを行うための機能を持つインタフェース。
ロードバランスオブジェクトグループインタフェース
ロードバランスオブジェクトグループへのオブジェクトリファレンスの登録、削除、検索などを行うための機能を持つインタフェース
ロードバランスは以下のインタフェースを提供しています。
#include "CosNaming.idl"
module ISOD {
interface LBG {
exception NotFound{};
exception CannotProceed{
CosNaming::NamingContext cxt;
CosNaming::Name rest_of_name;
};
exception CannotProceed2{};
exception AlreadyBound{};
exception BadObject{};
exception OperationBusy{};
enum LoadBalanceType{ roundrobin };
typedef sequence<Object> ObjectList;
void bind(
in Object objectref
) raises( AlreadyBound, BadObject, CannotProceed2 );
void unbind (
in Object objectref
) raises( NotFound, BadObject, CannotProceed2 );
Object rebind_default (
in Object objectref
) raises( CannotProceed, BadObject, CannotProceed2,
OperationBusy );
Object resolve(
) raises( NotFound, CannotProceed2 );
void list(
out ObjectList objectlist
) raises( CannotProceed2 );
};
interface LBO {
exception InvalidName{};
enum NotFoundReason{ missing_node, not_context, not_object };
exception NotFound{
NotFoundReason why;
CosNaming::Name rest_of_name;
};
exception CannotProceed{
CosNaming::NamingContext cxt;
CosNaming::Name rest_of_name;
};
exception CannotProceed2{};
enum DuplicateType{ objectgroup, other };
exception AlreadyExist{
DuplicateType Duplicate_type;
};
exception NotEmpty{};
exception InvalidArgument{};
exception InvalidType{};
exception BadObject{};
exception OperationBusy{};
enum LoadBalanceType{ roundrobin };
struct BindingLBG {
CosNaming::Name LBG_name;
LoadBalanceType LoadBalance_type;
};
typedef sequence<BindingLBG> LBGList;
LBG create_LBG(
in CosNaming::NamingContext nc,
in CosNaming::Name name,
in LoadBalanceType loadbalancetype,
in Object defaultobjref
) raises( NotFound, CannotProceed, InvalidName, AlreadyExist,
InvalidType, BadObject, OperationBusy );
LBG resolve_LBG(
in CosNaming::NamingContext nc,
in CosNaming::Name name
) raises( NotFound, CannotProceed, InvalidName, OperationBusy );
Object delete_LBG(
in CosNaming::NamingContext nc,
in CosNaming::Name name
) raises( NotFound, CannotProceed, InvalidName, NotEmpty,
OperationBusy );
void list_LBG(
in CosNaming::NamingContext nc,
out LBGList objectgrouplist
);
void notify_down(
in string HostName
) raises( InvalidArgument, CannotProceed2 );
void notify_recover(
in string HostName
) raises( InvalidArgument, CannotProceed2 );
};
};ロードバランスオプションで提供しているインタフェースの機能説明を以下に示します。
インタフェース名 | メソッド名 | 機能説明 |
|---|---|---|
LBO | create | オブジェクト名とロードバランスオブジェクトグループのオブジェクトリファレンスを関係付け、ネーミングサービスおよびロードバランスに登録します。 |
resolve | オブジェクト名とロードバランスオブジェクトグループのオブジェクトリファレンスを取得します。 | |
delete | オブジェクト名に関連付けられたロードバランスオブジェクトグループのオブジェクトリファレンスをネーミングサービスおよびロードバランスから削除します。 | |
list | 指定されたネーミングコンテキスト配下に登録されているロードバランスオブジェクトグループのオブジェクトリファレンスの一覧を取得します。 | |
notify_down | 指定されたサーバマシンがダウンしたことを通知します。 | |
notify_recover | 指定されたサーバマシンが復旧したことを通知します。 | |
LBG | bind | オブジェクト名とオブジェクトリファレンスを関連付け、ロードバランスグループに登録します。 |
unbind | オブジェクト名とオブジェクトリファレンスをロードバランスオブジェクトグループから削除します。 | |
rebind_default | ロードバランスオブジェクトグループのデフォルトオブジェクトのオブジェクトリファレンスを変更します。 | |
list | ロードバランスオブジェクトグループに登録されているオブジェクトのオブジェクトリファレンスの一覧を取得します。 |