Archived

This forum has been archived. Please start a new discussion on GitHub.

Delays due to multiple ethernet interfaces

Problem:

I have a Cray XD1 with 6 nodes(blades) each is dual homed.
One interface is for normal ethernet traffic (7.128.0.0),
the other is for maintenance only (7.0.0.0).
If a TCP communication is attempted on a maintenance interface
a delay of over a minute occurs.

I was able to eliminate the false attempts for normal communications
by explicitly specifying the IP number (see configuration file excerpts)
but I have not been able to fix the delays for the checkedCast below.

What else must I do?


In Client code:

seq = query->findAllObjectsByType( type);

encoder.proxy = EncoderPrx::checkedCast( seq[k]);

In Configuration file:

Ice.Default.Locator=IceGrid/Locator:tcp -h 7.128.45.102 -p 4061

IceGrid.Node.Endpoints=tcp -h 7.128.45.102

IceGrid.Registry.Client.Endpoints=tcp -h 7.128.45.102 -p 4061
IceGrid.Registry.Server.Endpoints=tcp -h 7.128.45.102
IceGrid.Registry.Internal.Endpoints=tcp -h 7.128.45.102

Thanks, Larry

Comments

  • matthew
    matthew NL, Canada
    Can you post the deployment XML file? Most likely you have not set the endpoints for your deployed application.
  • IceEncoder.xml

    <icegrid>

    <application name="IceEncoder">

    <server-template id="EncoderServerTemplate">
    <parameter name="index"/>
    <parameter name="exepath"
    default="/home/lzl/Cray/Unix/bin/IceEncoderServer"/>
    <server id="e${index}" exe="${exepath}" activation="on-demand">
    <adapter name="EncoderAdapter" endpoints="default" register-process="true">
    <object identity="encoder-${index}" type="::DLB::Encoder"/>
    </adapter>
    <property name="Identity" value="encoder-${index}"/>
    </server>
    </server-template>

    <node name="kirk726-1">
    <server-instance template="EncoderServerTemplate" index="1"/>
    <server-instance template="EncoderServerTemplate" index="2"/>
    </node>

    <node name="kirk726-2">
    <server-instance template="EncoderServerTemplate" index="3"/>
    <server-instance template="EncoderServerTemplate" index="4"/>
    </node>

    <node name="kirk726-3">
    <server-instance template="EncoderServerTemplate" index="5"/>
    <server-instance template="EncoderServerTemplate" index="6"/>
    </node>

    <node name="kirk726-4">
    <server-instance template="EncoderServerTemplate" index="7"/>
    <server-instance template="EncoderServerTemplate" index="8"/>
    </node>

    <node name="kirk726-5">
    <server-instance template="EncoderServerTemplate" index="9"/>
    <server-instance template="EncoderServerTemplate" index="10"/>
    </node>

    </application>

    </icegrid>
  • bernard
    bernard Jupiter, FL
    Hi Larry,

    The problem is the endpoints="default" in your server template. This tells the object adapter to listen on all your interfaces, and to publish proxies that contain both interfaces.

    The fix to your problem is to use endpoints="tcp -h 7.128.??.${index}" (if you can use ${index} to create the IP address). Or add a new template parameter and set endpoints="tcp -h ${ipAddress}".

    Cheers,
    Bernard
  • Problem solved!

    Thank you very much.

    Larry