Archived

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

Glacier2 ... Proxy caching?

Hi,

As in a previous post, I am trying to introduce Glacier2 into our architecture and am discovering some issues where indirect proxies are being routed to the wrong ICE endpoints.

In our architecture, we have our own Locator service which is driven off an xml file (ugly, I know). For some reason, if I try to create two object proxies (both indrect string proxies) within the Glacier2 session, the calls are routed to the same end point -- whichever one is created first.

The same locator service is used in both situations. Is there something in Glacier2 that it requires from the locator service to differentiate between two stringified proxies? Or perhaps the proxies are cached in Glacier? When tracing the Glacier2 Routing table, I only ever see one of the proxies being added to Glacier2's routing table.

Also one additional note - I'm using Ice 3.4.

Thanks!

Comments

  • https://www.zeroc.com/forums/help-center/4735-glacier2-reusing-wrong-connection-multiple-servers-same-type.html

    I just saw this similar issue which more or less illustrates my issue. I have endpoints with the same identity, and different adapters in the proxy string.
  • benoit
    benoit Rennes, France
    Hi Darren,

    You shouldn't use the same identity for different Ice objects. Glacier2 caches the proxies by identity in its routing table. So the first proxy which is added to the Glacier2 routing table will be the one used by the router to forward the requests.

    Cheers,
    Benoit.
  • benoit wrote: »
    Hi Darren,

    You shouldn't use the same identity for different Ice objects. Glacier2 caches the proxies by identity in its routing table. So the first proxy which is added to the Glacier2 routing table will be the one used by the router to forward the requests.

    Cheers,
    Benoit.

    Can this functionality be changed?

    We aren't really using the same identity for different Ice objects - more like the same Ice object exists on two different hosts. The location service differentiates these based on the adapter provided.
  • benoit
    benoit Rennes, France
    Hi,

    No this can't really be changed, the Ice object model requires that Ice objects have a unique identity. Various Ice services rely on this (the location service, Glacier2).

    Servants can be registered with the same identity in different servers only if they conceptually represent the same Ice object (i.e.: the different instances of the Ice object are replicas of each others and the client can indifferently call on any of the instances).

    Cheers,
    Benoit.