ADLINK Knowledge Base ADLINK Knowledge Base

  • Home
  • Vortex DDS
  • Vortex OpenSplice
  • Vortex Tools and Licensing
  • ADLINK Edge
  • Spectra SDR
  • Contact Support
Home / ADLINK DDS, Vortex OpenSplice, Best Practice and Possible Errors / Out of memory: unable to create message for Topic

Out of memory: unable to create message for Topic

I am trying to run OpenSplice DDS with the shared memory configuration and am creating a large topic. When I do this I am getting an error “Out of memory: unable to create message for Topic”. What could be causing this?

Out of memory: unable to create message for Topic

You are trying to create a large object in your OpenSplice application using shared memory configured with the following database attributes:

<Database>
         <Size>10485760</Size>
</Database>

And receive an error similar to the following:

=====================================================================================
Context : DDS::OpenSplice::FooDataWriter_impl::write
Date : Fri Jan 27 15:58:49 2017
Node : D160026
Process : pong.exe <5168>
Thread : 5740
Internals : FooDataWriter_impl.cpp/222/6.6.3/022e632/ecfd2d0
—————————————————————————————-
Report : Out of memory: unable to create message for Topic ‘PP_min_topic’.
Internals : u_writeWithHandleAction/u_writer.c/306/772/1485500329.975158900
—————————————————————————————-
Report : Memory claim denied for large object of 10485776 bytes: request exceeds available matching resources…
=====================================================================================

 

Solution

Here we are attempting to create an object of size 10MB, with a Database of size 10MB and a default Threshold. The Threshold attribute specifies how much memory must remain free in the system. So if the database was of size 10MB and the object you were creating was of size 10Mb but the Threshold was, for example, 1MB (the default), there is actually only 9MB of space available for the object and therefore creation will fail.

In order to create an object of size 10MB the Database size should be a multiple of 10MB and Threshold should be a minimum of and multiple of 10MB.

<Database>
        <Size>104857600</Size>
        <Threshold>10485760</Threshold>
</Database>

So the Threshold is 10MB and database is 100MB. This should allow your object creation. In reality it is a better idea to increase the database size and Threshold value even further if you are using such large objects.

Related

ConfigurationVortex OpenSpliceShared Memory ADLINK DDSVortex OpenSpliceBest Practice and Possible Errors
twitter logo facebook logo linkedin logo slideshrare logo
Blog News and Events
adlink logo
Copyright © 2020 ADLINK Technology Inc. All Rights Reserved