我的一个Corba操作正在返回一个union类型的序列(一个二维数组)。Corba操作返回的序列大小是否有限制?
在一次测试中发现,该操作无法处理一次返回多于32 kB的数据。如果总体阵列大小超过32 kB,则客户端的响应只能正确解组达到32 kB。从那时起,它由未初始化的数据填充(最终使解组失败)。
在相同的环境中,还有其他能够返回更大尺寸数据的操作。然而,这是返回序列序列的唯一操作。
对于我应该知道的Corba中传输的序列或数据的长度是否有限制?我的环境由32位Java 6客户机(使用标准Java ORB)和64位服务器(C,具有2AB ORB实现)组成。
我试过到目前为止:在客户端和服务器端
调整了几个球性,这些措施似乎相关 - 超时设置(transport.ORBTCPReadTimeout
- 超时设置为一个大的数字),GIOP设置(giop.ORBFragmentSize
,giop.ORBBufferSize
- 都设置为大数字)。这些设置都没有改变行为。
使用数据包嗅探器,我可以确认数据已发送到客户端。解组期间出现问题。
这听起来不仅仅是一个CORBA实现中的错误,通常最大值应该是max CORBA :: ULong –
谢谢,我其实也认为这可能是一个错误。客户端ORB是一个Oracle JDK ORB,因此我会尝试搜索这个已知的错误。 –
您可以向公众提供一个示例,以确保您身边没有错误:) – tuergeist