Archived
This forum has been archived. Please start a new discussion on GitHub.
IceGrid
Hello,
We run the registry and an IceStorm service on a machine with four IP addresses, one of which is reserved to inter-machine communications and causes any Ice connection to hang up if selected. Our workaround to this was to explicitly specify endpoints for only the three IP addresses that we can actually access (we did this for IceStorm and the IceGrid registry).
I am now trying to use icegridnode, and am having similar problems. We specified the endpoints for the IceGrid Admin and Internal endpoints. Icegridadmin works fine now, but icegridnode does not.
Using icegridadmin, I did 'adapter endpoints IceGrid.Registry.Internal'; it came back with "dummy: <inactive>". Is that a problem?
Thanks,
Mark
We run the registry and an IceStorm service on a machine with four IP addresses, one of which is reserved to inter-machine communications and causes any Ice connection to hang up if selected. Our workaround to this was to explicitly specify endpoints for only the three IP addresses that we can actually access (we did this for IceStorm and the IceGrid registry).
I am now trying to use icegridnode, and am having similar problems. We specified the endpoints for the IceGrid Admin and Internal endpoints. Icegridadmin works fine now, but icegridnode does not.
Using icegridadmin, I did 'adapter endpoints IceGrid.Registry.Internal'; it came back with "dummy: <inactive>". Is that a problem?
Thanks,
Mark
0
Comments
-
Which Ice version do you use?
The IceGrid registry doesn't register the IceGrid.Registry.Internal adapter with its database so I don't understand how you were able to lookup the endpoints for this adapter.
Where do you explicitly specify the endpoints for the three IP addresses? in proxies? in adapter endpoints? How does the IceGrid node fail? Is there an error message or does it hang?
The best would be to detail a little more the network configuration of your machines and post the configuration files for your registry and nodes. Please also post the error messages you're seeing.
Cheers,
Benoit.0 -
We are currently using 3.1.0. I thought maybe it was funny that I could see internal endpoints. We specify the registry endpoints in a config file:
IceGrid.Registry.Client.Endpoints=tcp -h redwood -p 11010:tcp -h redwood1 -p 11010:tcp -h redwood-ep -p 11010
IceGrid.Registry.Server.Endpoints=tcp -h redwood:tcp -h redwood1:tcp -h redwood-ep
IceGrid.Registry.Admin.Endpoints=tcp -h redwood:tcp -h redwood1:tcp -h redwood-ep
IceGrid.Registry.Internal.Endpoints=tcp -h redwood -p 11011:tcp -h redwood1 -p 11011:tcp -h redwood-ep -p 11011
IceGrid.Registry.Data=/var/opt/Ice/IceGrid/db
IceGrid.Registry.DynamicRegistration=1
Ice.Trace.Network=2
Ice.UseSyslog=1
I configure the icegridnode with this config file:
#
# Node configuration
#
IceGrid.Node.Name=SHSS_BL2
IceGrid.Node.Endpoints=tcp
IceGrid.Node.Data=/ep/etc/WavefrontControlSystem/BL2/icegrid_db
Ice.Default.Locator=IceGrid/Locator:tcp -h redwood -p 11010
Here is the XML file for icegridnode:
<!-- SHSS_IceGrid.xml -->
<icegrid>
<application name="WavefrontControl">
<node name="SHSS_BL2">
<server id="ShackHartmannSvc"
exe="/ep/sparc_SunOS5.10/bin/SHSServer"
activation="on-demand">
<adapter name="ShackHartmannSensor"
endpoints="tcp"
id="BL2_ShackHartmannAdapter"/>
<property name="Ice.Trace.Network"
value="0"/>
<property name="Ice.MessageSizeMax"
value="2048"/>
<property name="Ice.ServerIdleTime"
value="36000"/>
<property name="ShackHartmannSensor.EDT_unit"
value="0"/>
<property name="ShackHartmannSensor.EDT_channel"
value="0"/>
</server>
</node>
</application>
</icegrid>
The client gets a "No endpoints" error. The client uses this config file:
Ice.MessageSizeMax=2048
ShackHartmannSensor.Proxy=ShackHartmannSensor@BL2_ShackHartmannAdapter
Ice.Default.Locator=IceGrid/Locator:tcp -h redwood -p 11010
And this is how the client creates the object adapter:
SHSAdapter_ = communicator()->createObjectAdapter("ShackHartmannSensor");0 -
For some reasons the registry can't figure out the endpoints of the server object adapter and this results in your client getting an Ice::NoEndpointException. This could be because your server fails to start or because the node can't be reached by the registry.
Enabling the following trace properties in the registry configuration file should give you more information:IceGrid.Registry.Trace.Node=2 IceGrid.Registry.Trace.Locator=2
Cheers,
Benoit.0 -
I discovered that the LD_LIBRARY_PATH variable was not set properly to pick up a shared library used in the server. :rolleyes:
I used the <env></env> tag to set it properly.0