Subscribing Program Terminates Unexpectedly

2 posts / 0 new
Last post
Offline
Last seen: 8 years 8 months ago
Joined: 08/17/2015
Posts: 1
Subscribing Program Terminates Unexpectedly

After a few minutes reading data from a topic, the subscribing program unexpectedly terminates as if someone decided to simply stop it. What could cause a subscribing program to terminate by itself? I had originally thought that maybe it was a set limitation of the trial license (since at termination, the licensing information is displayed), but the problem remains with the full license. Data is received with a couple losses here and there. Perhaps the problem is obvious, but I am new to DDS. Has this happened to anyone else, and how did you solve it?

Gerardo Pardo's picture
Offline
Last seen: 3 weeks 6 days ago
Joined: 06/02/2010
Posts: 601

Hello,

This should not be happening. And definitely has nothing to do with the evaluation licence as you said. We do not have any code that would make an applicaton stop running because it uses an evaluation license.

There is no code per se the DDS libraries to terminate application. The application is in control of DDS resources via the API, creating and destroying DDS DomainParticipants and other entites. DDS starts is own internal threads when you create DomainParticipants that it will terminate those threads when the application deletes the DomainParticipant. But the "main" application threads are under yoru control and DDS should not be doing anything with them.

What is your main applicatio thread doing after it creates the DDS entities? is it waiting for something, running on some loop? Is there a way that this "main" application thread is somehow finishing its execution?

The only thing I can think of is that you are getting some exception or "segmrntation fault" that crashes the entire process. Are you seeing any error messages? Is this an application started on a command-line or a GUI? If a command line is it echoing something when the application terminates?

What language are you using to program? If Java, C#, or C++ are you catching exceptions that may be raised by the functions you call?

I would try to run the application inside a debugger and see if it says something when the application stops. Sometimes a debbuger is better about telling why an application terminates. E.g. it is receiving a signal or trying to access invalid memory.

-Gerardo