NDDS_Transport create error

3 posts / 0 new
Last post
Offline
Last seen: 11 years 2 months ago
Joined: 04/09/2013
Posts: 13
NDDS_Transport create error

I created a release exec from Visual studio and the program runs great. If I run the program on a second machine I get the following error:

[D0000|ENABLE]NDDS_Transport_UDPv4_SocketFactory_create_receive_socket:setsockop
t(ADD_MEMBERSHIP) error 0
multicast_address_in: 0000:0000:0000:0000:0000:0000:EFFF:0001
interface: 0000:0000:0000:0000:0000:0000:C0A8:00C8
[D0000|ENABLE]NDDS_Transport_UDPv4_SocketFactory_create_receive_socket:setsockop
t(ADD_MEMBERSHIP) error 0
DDSDomainParticipant_impl::createI:ERROR: Failed to auto-enable entity
multicast_address_in: 0000:0000:0000:0000:0000:0000:EFFF:0001
interface: 0000:0000:0000:0000:0000:0000:C0A8:00C8
DDSDomainParticipant_impl::createI:ERROR: Failed to auto-enable entity
DomainParticipantFactory_impl::create_participant():!create failure creating par
ticipant

Organization:
rose's picture
Offline
Last seen: 3 years 4 months ago
Joined: 08/22/2011
Posts: 148

There are a couple possible causes of the error you are seeing:

1. Can you confirm that the network is up on the new machine?  If you are expecting to use only shared memory, and this is a Windows machine, you will have to disable UDPv4, by setting the enabled transport to be only shared memory:  

<participant_qos>
    <transport_builtin>
        <mask>shmem</mask>
    </transport_builtin>
 </participant_qos>

  2.  Another possibility is that there is a problem with multicast not being enabled on your system.  You can turn off the use of multicast for discovery by setting the initial peers in your XML file.  (Multicast is not enabled for user data by default.  If you have enabled multicast by setting the multicast QoS in one or more DataReaders, you may need to comment this out in your configuration.)

<participant_qos>
    <discovery>

        <initial_peers>
            <!-- Insert the addresses here of the machines you want to contact -->
            <element>127.0.0.1</element>
            <!-- <element>192.168.1.2</element>-->
        </initial_peers>
    </discovery>
</participant_qos>

Thank you,
Rose

 
rose's picture
Offline
Last seen: 3 years 4 months ago
Joined: 08/22/2011
Posts: 148

Hello, 

I noticed in your other question that you've changed the transport sizes.  They are set small enough that I doubt they are the cause of this error, but if neither of my previous two recommendations help, I recommend setting those back to default and seeing if that solves the problem.  Also, since I notice you are making changes in code instead of XML, here is the code for enabling only shared memory, and for changing the initial peers.

1. Set the transport mask in the participant QoS:
participant_qos.transport_builtin.mask = DDS_TRANSPORTBUILTIN_SHMEM;

2. Set the initial peers in the participant QoS:
participant_qos.discovery.initial_peers.maximum(1);
participant_qos.discovery.initial_peers.length(1);
participant_qos.discovery.initial_peers[0] = DDS_String_dup("10.10.20.1");

Thank you,
Rose