Routing topics across more than one domain

3 posts / 0 new
Last post
Offline
Last seen: 10 months 3 weeks ago
Joined: 07/25/2018
Posts: 2
Routing topics across more than one domain

I am trying to prototype some basic scenarios using the shapes demo and the routing service. The basic setup is 3 domains (D0,D1,D2) and two routers (R1, R2). Looks something like this:

(D0) ->(R1)->(D1)->(R2)->(D2)

I am using one of the example xml configuration files: RTI_ROUTING_SERVICE.xml with the <auto_topic_route> <creation_mode>ON_DOMAIN_OR_ROUTE_MATCH<creation_mode>. I read this post regarding a similar situation.  https://community.rti.com/forum-topic/routing-service-across-multiple-domains-issue . The goal was to publish a shape on D0 and be able to subscribe to it on D2 (chaining the domains). My understanding was that the auto_topic_route will create the route automatically, but this setup has not been working for me. I can only pub/sub a shape between D0 -> D1 and separately, D1 ->D2.  I am only trying to run on a single machine on what I'm assuming defaults to shared memory. This is my routing service config. I run routing service R1 with "default_0_1" and routing service R2 with "default_1_0". Any help would be appreciated.

code

<?xml version="1.0"?>
<dds xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://community.rti.com/schema/5.3.1/rti_routing_service.xsd">

<!-- ********************************************************************** -->
<!-- Default configuration file for RTI Routing Service -->
<!-- ********************************************************************** -->

<routing_service name="default_0_1">

<annotation>
<documentation>Routes all topics from domain 0 to domain 1</documentation>
</annotation>

<domain_route name="DefaultDomainRoute">

<participant_1>
<domain_id>0</domain_id>
</participant_1>

<participant_2>
<domain_id>1</domain_id>
</participant_2>

<session name="DefaultSession">
<auto_topic_route name="RouteAll">
<publish_with_original_info>true</publish_with_original_info>
<input participant="1">
<creation_mode>ON_DOMAIN_OR_ROUTE_MATCH</creation_mode>
<allow_topic_name_filter>*</allow_topic_name_filter>
<allow_registered_type_name_filter>*</allow_registered_type_name_filter>
<!-- Exclude monitoring, administration and logging
topics -->
<deny_topic_name_filter>rti/*</deny_topic_name_filter>
</input>
<output>
<creation_mode>ON_DOMAIN_OR_ROUTE_MATCH</creation_mode>
<allow_topic_name_filter>*</allow_topic_name_filter>
<allow_registered_type_name_filter>*</allow_registered_type_name_filter>
<!-- Exclude monitoring, administration and logging
topics -->
<deny_topic_name_filter>rti/*</deny_topic_name_filter>
</output>
</auto_topic_route>
</session>

</domain_route>
</routing_service>

<routing_service name="default_1_2">

<annotation>
<documentation>Routes all topics from domain 1 to domain 2</documentation>
</annotation>

<domain_route name="DefaultDomainRoute">

<participant_1>
<domain_id>1</domain_id>
</participant_1>

<participant_2>
<domain_id>2</domain_id>
</participant_2>

<session name="DefaultSession">
<auto_topic_route name="RouteAll">
<publish_with_original_info>true</publish_with_original_info>
<input participant="1">
<creation_mode>ON_DOMAIN_OR_ROUTE_MATCH</creation_mode>
<allow_topic_name_filter>*</allow_topic_name_filter>
<allow_registered_type_name_filter>*</allow_registered_type_name_filter>
<!-- Exclude monitoring, administration and logging
topics -->
<deny_topic_name_filter>rti/*</deny_topic_name_filter>
</input>
<output>
<creation_mode>ON_DOMAIN_OR_ROUTE_MATCH</creation_mode>
<allow_topic_name_filter>*</allow_topic_name_filter>
<allow_registered_type_name_filter>*</allow_registered_type_name_filter>
<!-- Exclude monitoring, administration and logging
topics -->
<deny_topic_name_filter>rti/*</deny_topic_name_filter>
</output>
</auto_topic_route>
</session>

</domain_route>
</routing_service>

</dds>

 

 

rip
rip's picture
Offline
Last seen: 1 month 3 weeks ago
Joined: 04/06/2012
Posts: 315

Most likely the "problem" is the auto route in the configuration. 

There's nothing DDS on D1, so the two routing services are actively (ie, passively) waiting for something to appear.

Start ddsspy or shapes or something in D1, to tell the two RSs that there "is a there, there".

Or, get rid of the xml node creation_mode, as the default is "ALWAYS" on at least one of the RS configs.  *That* RS will create a participant on D1, and the other will see it and complete the route.

Haven't worked with RS for a while, so the above is from memory.

rip

Offline
Last seen: 10 months 3 weeks ago
Joined: 07/25/2018
Posts: 2

Thanks for the response, Rip. Somehow everything works after a restart of my computer. I have played around with the creation_mode and it works both ways.