Home Help Center

Glacier2 ... Proxy caching?

kashiratkashirat Member Darren YuOrganization: EnbridgeProject: Glacier2 Integration
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

  • kashiratkashirat Member Darren YuOrganization: EnbridgeProject: Glacier2 Integration
    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.
  • benoitbenoit Rennes, FranceAdministrators, ZeroC Staff Benoit FoucherOrganization: ZeroC, Inc.Project: Ice ZeroC Staff
    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.
  • kashiratkashirat Member Darren YuOrganization: EnbridgeProject: Glacier2 Integration
    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.
  • benoitbenoit Rennes, FranceAdministrators, ZeroC Staff Benoit FoucherOrganization: ZeroC, Inc.Project: Ice ZeroC Staff
    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.
Sign In or Register to comment.