[openrtm-users 00609] Re: データポートで送受信できるデータの上限サイズについて

kurihara shinji shinji.kurihara @ aist.go.jp
2008年 9月 17日 (水) 18:34:34 JST


榎本 様

産総研 栗原です。


まず、omniORBでは、giop(General Inter-ORB Protocol)で扱える
サイズはデフォルトで"2097152B(2MB)"となっております。
今回の問題では、2.8MByteのデータ通信で上手くいかなかったとの
事ですので、omniORBのgiopで扱えるサイズを越えている事が原因
ではないかと考えられます。


この最大サイズを変更するためには、下記の2つの方法があります。

 1. rtc.confにて最大サイズを指定する。
    
    # file: rtc.conf
    corba.nameservers: localhost
    naming.formats: %n.rtc
    corba.args: -ORBgiopMaxMsgSize 3145728 # この行を追加
                                           # Maxサイズを3Mに指定

 2. 環境変数にて指定する場合
     export ORBgiopMaxMsgSize=3145728


 ※ giopMaxMsgSizeを指定する場合、server,client共(対になるコンポーネン
    ト)に設定する必要があります。


(omniORB configuration and API)
 http://omniorb.sourceforge.net/omni41/omniORB/omniORB004.html


以上、宣しくお願い致します。



On Wed, 17 Sep 2008 17:22:51 +0900
"yosuke enomoto" <blitzunddonnert @ gmail.com> wrote:

> 榎本です.
> 
> データポートで送受信できるデータの上限サイズを伺いたいと思います.
> 
> データポートを使い,TimedOctetSeqに大きいサイズの構造体(2.8MByte)をmemcpyし,送受信しようとしたところ,上手く送ることが出来ませんでした.
> しかしながら,単純に構造体のサイズを小さく変えてみた(1.3MByte)ところ,送受信することができました.
> 
> データポートを介した通信では,データを一度バッファに格納してから通信していると伺っておりますので,このサイズを超えてしまう為に通信ができなくなってしまうのでは,とは思っておりますが,このような理解でよろしいでしょうか?
> 
> もし,このような理解でよろしければ,データポートの上限サイズについて,
> TimedOctetSeqならば何Byte,TimedDoubleSeqなら何個の配列,というような指標を頂けたら幸いかと思います.
> 


-- 
----------
栗原 眞二
shinji.kurihara @ aist.go.jp
kurihara @ imagination.co.jp



openrtm-users メーリングリストの案内