I try to communicate with different module using DDS (IDL) in same machine. the data size is big.
When I try to publish my data I have this error:
REDAFastBufferPool_growEmptyPoolEA: !allocate buffer of 39454018304 bytes
REDAFastBufferPool_newWithNotification:!create fast buffer pool buffers
PRESTypePluginDefaultEndpointData_createWriterPool:!create writer buffer pool
WriterHistorySessionManager_new:!create newAllocator
WriterHistoryMemoryPlugin_createHistory:!create sessionManager
PRESWriterHistoryDriver_new:!create _whHnd
PRESPsService_enableLocalEndpointWithCursor:!create WriterHistoryDriver
PRESPsService_enableLocalEndpoint:!enable local endpoint
DDSDataWriter_impl::createI:ERROR: Failed to auto-enable entity
! Unable to create DDS data writer
After that I also do two things according to blog
First 1 in USER_QOS_PROFILE.xml : add
<participant_qos>
<discovery>
<initial_peers>
<!-- Insert the addresses here of the machines you want to contact -->
<element>127.0.0.1</element>
<!-- <element>192.168.1.2</element>-->
</initial_peers>
</discovery></participant_qos>
2 nd in /etc/sysctl.conf : add
kern.sysv.shmmax=419430400
kern.sysv.shmmin=1
kern.sysv.shmmni=128
kern.sysv.shmseg=1024
kern.sysv.shmall=262144
Although I have same Error.
Hey,
Please note that RTI is trying to allocate about 40GB and you've set the shmax to about 400MB (meaning, not big enough).
I would urge you to reconsider what you're doing with your type and the QoS because it sounds like a bad idea.
If you can describe your use-case and the data type / qos that you are using it would be useful.
Roy.
Thanks, I found the problem. it was, i defined the different data types in idl(bytes) and my sending message(long).