Borland(R) Enterprise Server VisiBroker(R) デベロッパーズガイド

[目次][索引][前へ][次へ]

7.3.1 POAネーミング規則

各POAは自身の名前と完全なPOA名称(完全階層パス名)を常に把握しています。階層はスラント(/)で示されます。例えば,/A/B/Cは,POA CはPOA Bの子であり,POA BはPOA Aの子であるという意味です。最初のスラントはrootPOAを示します。Bind Support:BY_POAポリシーをPOA Cに設定すると,/A/B/Cはosagentに登録され,クライアントは/A/B/Cにバインドできるようになります。

使用するPOA名にエスケープ文字またはそれ以外の区切り文字が含まれている場合,名前を内部で記録するときに,Borland Enterprise Server VisiBrokerはこれらの文字の前に二重\マーク(\\)を付加します。例えば,次のような階層に二つのPOAがあるとします。

C++の場合
 
PortableServer::POA_var myPOA1 =
                          rootPOA->create_POA("A/B",
                          poa_manager,
                          policies);
PortableServer::POA_var myPOA2 =
                          myPOA1->create_POA("\t",
                          poa_manager,
                          policies);
 

クライアントがバインドするときには,次のように使用します。

 
Bank::AccountManager_var manager = Bank::AccountManager::_bind
                          ("/A\\/B/\t", managerId);
 

Javaの場合
 
org.omg.PortableServer.POA myPOA1 =
                          rootPOA.create_POA("A/B",
                                             poaManager,
                                             policies);
org.omg.PortableServer.POA myPOA2 =
                          myPOA1.create_POA("\t",
                                             poaManager,
                                             policies);
 

クライアントがバインドするときには,次のように使用します。

 
org.omg.CORBA.Object manager = 
        ((com.inprise.vbroker.orb.ORB) orb).bind("/A\\/B/\t",
          managerId,
          null,
          null);