Interstage Application Server アプリケーション作成ガイド (CORBAサービス編)
目次 索引 前ページ次ページ

付録G ロードバランス機能のプログラミング

G.2 ロードバランス機能インタフェース

 ロードバランスは、ロードバランスオプションとネーミングサービスに登録されたロードバランスオブジェクトグループの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

ロードバランスオブジェクトグループに登録されているオブジェクトのオブジェクトリファレンスの一覧を取得します。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005