Archived
This forum has been archived. Please start a new discussion on GitHub.
Delays due to multiple ethernet interfaces
in Help Center
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
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
0
Comments
-
Can you post the deployment XML file? Most likely you have not set the endpoints for your deployed application.0
-
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>0 -
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,
Bernard0 -
Problem solved!
Thank you very much.
Larry0