IceGrid

mwilsonmwilson Member Mark WilsonOrganization: Integrated Computer Solutions, Inc.Project: TBD ✭✭✭
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

Comments

  • benoitbenoit Rennes, FranceAdministrators, ZeroC Staff Benoit FoucherOrganization: ZeroC, Inc.Project: Ice ZeroC Staff
    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.
  • mwilsonmwilson Member Mark WilsonOrganization: Integrated Computer Solutions, Inc.Project: TBD ✭✭✭
    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
    [email protected]_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");
  • benoitbenoit Rennes, FranceAdministrators, ZeroC Staff Benoit FoucherOrganization: ZeroC, Inc.Project: Ice ZeroC Staff
    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.
  • mwilsonmwilson Member Mark WilsonOrganization: Integrated Computer Solutions, Inc.Project: TBD ✭✭✭
    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.
Sign In or Register to comment.