[openrtm-users 02881] Re: マネージャーが使うポート番号について

Kei Okada k-okada @ jsk.t.u-tokyo.ac.jp
2013年 8月 22日 (木) 17:42:40 JST


ありがとうございます.

助かりました.


% 最初は,マスターのポートってなんですか,程度の質問だったんですが,書いているうちに,いろいろ整理がつかず,混みいってしまいました...とはいえ,だいぶ理解が進んだ気がします.ありがとうございます.

2013/8/22 Ando Noriaki <n-ando @ aist.go.jp>:
> 安藤です
>
> あまりビギナーな質問ではないので、usersにも転送します(笑
>
>> 岡田です.
>>
>> 初歩的な質問でbeginnersに連絡したほうがいいのかもしれないのですが,
>> OpenRTMのマネージャーが使うポートはデフォルトで2810になっているとおもうのですが,
>> こちらでRTCを別のポート(例えば-ORBInitRef
>> NameService=corbaloc:iiop:localhost:5005/NameServiceとオプションをつけて5005で立ち上げる)場合にはポートは幾つかになるでしょうか?
>
> このオプションは、orb->resolve_initial_references("NameService") という
> 呼び出しの時に返すオブジェクトリファレンスを与えるためのオプションです。
> OpenRTM-aistではネームサービスのリファレンス取得やその他のサービスの
> リファレンス取得に resolve_initial_references は使っていないので、
> このオプションはシステムの挙動に影響を与えません。
>
> もし、ORBのポートを含むエンドポイントを指定したい場合は rtc.conf の
> corba.endpointsオプションで与えると、希望するIPアドレスおよびポートで
> ORBを起動することができます。
>
>> 例えばこちらのクライアントソフト(hrpsysのrtm.py)で以下のようなコードがあるのですが,ここの2810は替えるべきでしょうか?そのままでいいでしょうか?
>>
>>
>>         def getManagerDirectly(hostname, mgr = None):
>>                 global orb
>>                 corbaloc = "corbaloc:iiop:" + hostname + ":2810/manager"
>>                 try:
>>                         obj = orb.string_to_object(corbaloc)
>>                         mgr = RTCmanager(obj._narrow(RTM.Manager))
>>                 except:
>>                         mgr = None
>>                 return mgr
>
> このコードはマスタマネージャのリファレンスを取得しているようですので、
> もし、マスターマネージャのポート番号を変更したならこの2810は変更する必要があります。
> ただ、OpenRTM-aist内部ではマスタマネージャのポート番号を2810以外に設定する方法は
> 用意されていなかったと思います。(ちょっと確信がありませんが、、、)
> エンドポイントの指定とマスターかどうかの指定はマスターの指定が優先されるためです。
>
>> ついでに,これもよくわかっていないんですが,複数のRTCをプロセスとして立ち上げると
>> それぞれのRTCがマネージャをもっていると思うのですが,普通は問題ないのですが,
>> 特定のユーザだけ,2個目のRTCを立ち上げた時に以下のエラーが出るんですが,
>> これはどういう状況だかわかったりしますでしょうか?
>>
>> omniORB: Failed to bind to address :: port 2810. Address in use?
>> omniORB: Error: Unable to create an endpoint of this description: giop:tcp::2810
>
> これは、2個目のマスターマネージャを起動しているためかと思います。
> そのプロセスがマスターになる条件は、
> 1. (スタンドアロンコンポーネントの場合) オプションに-d がついている
> 2. rtc.conf で manager.is_master: YES が指定されている
> の2つです。これを満たすプロセスを2つ以上起動すると、ポート番号が被るので
> おそらくこのようなエラーが出ると思います。
>
>
>
>> _______________________________________________
>> openrtm-users mailing list
>> openrtm-users @ openrtm.org
>> http://www.openrtm.org/mailman/listinfo/openrtm-users
> _______________________________________________
> openrtm-users mailing list
> openrtm-users @ openrtm.org
> http://www.openrtm.org/mailman/listinfo/openrtm-users


More information about the openrtm-users mailing list