ZettaScale Knowledge Base ZettaScale Knowledge Base

  • Home
  • DDS Products
    • DDS Overview and Concepts
    • OpenSplice DDS
      • OpenSplice DDS
        • OpenSplice FAQ
        • Why OpenSplice DDS?
        • Installation
          • OpenSplice Licensing FAQ
        • Best Practice and Possible Errors
        • API and IDL
        • Configuration
        • Networking
          • DDSI
          • RT Networking
        • Durability Service
        • DDS Security
        • Logging
        • Databases and DBMS
        • Release Notes
      • OpenSplice Tools
        • Overview
        • OpenSplice Launcher
        • OpenSplice Tuner
        • OpenSplice Tester
        • Record and Replay Manager
        • MMStat
    • Cyclone DDS
  • Zenoh
  • Contact Support
Home / DDS, OpenSplice DDS, 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

ConfigurationOpenSpliceShared Memory DDSOpenSplice DDSBest Practice and Possible Errors
twitter logo linkedin logo
News and Events
Copyright © 2022 ZettaScale Technology Ltd. All Rights Reserved