Problems with Subscribers running Loc... PreviousNext
Data Distribution Service (DDS) Forum > DDS Technical Forum >
Next message Ryan S.  posted on Wednesday, March 31, 2010 - 09:01 pm

I'm doing a latency test for my company so we can compare DDS, JMS, and XMPP performance.

The test description:
2 PCs
PC A has 1 publisher, 5 subscribers
PC B has 5 publishers

The publisher publishes a ping message on Topic A.
When the subscribers receive the ping message using the on_data_available call back, they publish the same message (a pong message) on Topic B.
When the publisher gets all the pongs from Topic B it stops the timer.

I'm having trouble running the Subscribers on both PC A and B. I can run subscribers on PC A (local) or PC B (remote), but I can't get them to run on both at the same time.

I have a timeout on the publisher side that always times out when I run subscribers on both PC A and B. I set it as high as 1 minute and it's not getting all the pongs. That should be more than enough time.

What am I missing?

Below are the QoS settings for both subscriber and publisher.

// Customize the DataWriter QOS Policies
dataWriterQos.value.reliability.kind = ReliabilityQosPolicyKind.RELIABLE_RELIABILITY_QOS;

dataWriterQos.value.history.kind = HistoryQosPolicyKind.KEEP_ALL_HISTORY_QOS;

dataWriterQos.value.resource_limits.max_instances = 1;
dataWriterQos.value.resource_limits.max_samples = LENGTH_UNLIMITED.value;
dataWriterQos.value.resource_limits.max_samples_per_instance = LENGTH_UNLIMITED.value;

dataWriterQos.value.latency_budget.duration = new Duration_t(0, 0);

dataWriterQos.value.writer_data_lifecycle.autodispose_unregistered_instances = false;

// Customize the DataReader QOS Policies
dataReaderQos.value.reliability.kind = ReliabilityQosPolicyKind.RELIABLE_RELIABILITY_QOS;

dataReaderQos.value.history.kind = HistoryQosPolicyKind.KEEP_ALL_HISTORY_QOS;

dataReaderQos.value.resource_limits.max_instances = 1;
dataReaderQos.value.resource_limits.max_samples = 100;
dataReaderQos.value.resource_limits.max_samples_per_instance = 100;

dataReaderQos.value.latency_budget.duration = new Duration_t(0, 0);
Next message Ryan S.  posted on Wednesday, March 31, 2010 - 09:51 pm
I'm also using OpenSplice
Next message Ryan S.  posted on Wednesday, March 31, 2010 - 10:07 pm
Investigating further, only the remote subscribers get the ping. The local subscribers do not.
Next message Hans van 't Hag  posted on Thursday, April 01, 2010 - 04:42 pm
Hi Ryan,

As this a product-specific question, could you please raise this at our OpenSplice developers mailing list please, please check-out

Also it would help if you could provide a code-example that shows the issue (as it doesn't sound like a 'familiar' issue to me right now),

Back to top
Add Your Message Here
Username: Posting Information:
This is a private posting area. Only registered users and moderators may post messages here.
Options: Post as "Anonymous"
Enable HTML code in message
Automatically activate URLs in message