Archived

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

question about icegrid load balance

mill888
edited April 2018 in Help Center

Hi:

Firstly, I must explain : In my usage of icegrid, I must set the server activation to be manual, and start the server manually.

with the load balance of icegrid , for example round-robin , I want to disable or isolate one server temporarily when I have to upgrade the server exe program and restart the program manually, so that the new incoming message can not be sent to this server.

my app.xml is in the attach file app2.txt:

If I want to upgrade the Server1 exe program zjyw_ice , I must replace exe program with newer version and restart it manually . So before upgrade it , I want to disable Server1 temporarily so that the new incoming message can not be sent to Server1.

Although in the IceGridGUI, Server has the "disable" menu,and it can disable the Server ,but even if disable the server using this menu, the new incoming message is also sent to the server。This is not what I want.

So , the icegrid has this function ? How to do it ?

Comments

  • benoit
    benoit Rennes, France

    Hi

    Which Ice version do you use for IceGrid? The "server disable" functionality in the IceGrid GUI disables location of the disabled server since Ice 3.5.0.

    So if you are using Ice >= 3.5.0, the behavior you are observing is most likely due to the caching of the Server1 endpoints in the client. If the client caches the endpoints for Server1, it won't contact IceGrid when it needs to resolve the endpoint again and it won't know that the server disabled. You can disable caching by setting Ice.Default.LocatorCacheTimeout=0. See https://doc.zeroc.com/display/Ice37/Locator+Semantics+for+Clients for additional information on locator caching. You can also enable to Ice.Trace.Locator=2 to better understanding how the caching works.

    Cheers,
    Benoit.

  • oh, I am using 3.2.1
    I will test it on 3.7.0
    Thank you !

  • mill888
    edited April 2018

    But I had to use 3.2.1 on aix 5.3 , and compiler is IBM XLC 8.0。I found XLC 8.0 could not compile Ice >= 3.5.0.

    So,

    Is there a patch to 3.2.1 , then I can use this function of load balance ? I think it is easy to patch it, because I image when location of server, it firstly test whether the server is disabled。So can you Patch it for me ? Because I am writing a graduation thesis about distributed computing based on ICE, and I have to demonstrate it . But I only have aix 5.3 and IBM XLC 8.0。