|
From: Adam M. <mi...@oc...> - 2011-12-28 21:06:03
|
Hi Leeland, On 11/8/2011 11:13 AM, Leeland Artra wrote: > > Hello Adam, > > Your comment on the history keeping might indeed be the issue. I found > another section of code that had this additional comment: > > //We don't want to lose any messages so setting the history to keep > all and set limits to unlimited > > dr_qos.history.kind = DDS::KEEP_ALL_HISTORY_QOS; > > Which seems wrong to me. What we really want is for all messages to be > assured of being passed on to the subscribers. What would you > recommend I set these parameters to? > > I don't think there's one right answer to the HISTORY QoS settings. The snippet of code you've shown is "dr_qos", so I assume that's for the DataReader. KEEP_ALL_HISTORY_QOS should be OK here unless you notice a lot of memory use. Your application code will most likely be calling some form of take() on the Data Reader so it doesn't need to hold on to the data forever. Setting HISTORY on the Data Writer can be more difficult. KEEP_ALL can lead to large memory use (not leak) in the Data Writer, but too small a number can lead to samples being replaced before they're sent. I think this large memory use may be an implementation artifact so let us know if you're interested in developing or funding a fix for that. > As far as the id_ I am still trying to figure out where that is set, > how it is tracked, etc. None of the HISTORY settings will make much sense for your application until you determine how you'd like to divide the data samples into instances. Is there only one instance (no key fields), or one instance per data sample (one key field with a different value for each sample), or something in between? Thanks, Adam Mitz Senior Software Engineer Object Computing, Inc. |