Archived

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

Qeustion about ice-E object migration

Hi,

From what I've gathered so far, it is possible to do object migration with ice. Is it also possible with ice-E?

Say I have a mobile client (C1) currently communicating with the server S1. Assume it is using an arbitrary object called O1. I want to take down S1 for maintenance and migrate any objects (including O1) it has to a new server, S2. From what I've read so far, it is possible to migrate objects from S1 to S2 using the standard ice protocols. But I got some questions about what happens to clients who already has references to the migrated object.

Can anyone help me to clarify these points please?

1. Can my client, C1, automatically find out that this scenario has happened without S1 explicitly notifying it?

2. What would happen if C1 invokes a method on O1? Would it automatically get delegated to the migrated server (S2)? From reading the ice documentation and this thead, it appears that the client will have to catch the exception and retry the invocation. Therefore, the migration process isn't entirely client-transparent. Is this still true with the latest ice-E release? I couldnt find any information about this with regards to ice-E. If anyone can shed some light on how this is handled in ice-E it'd be great!

Any help is much appreciated! Thanks!

Comments

  • matthew
    matthew NL, Canada
    Migration using indirect proxies works with Ice-E.
    1. Can my client, C1, automatically find out that this scenario has happened without S1 explicitly notifying it?

    Yes. The client will retry, and will re-contact the IceGrid location and receive an updated proxy for the object.
    2. What would happen if C1 invokes a method on O1? Would it automatically get delegated to the migrated server (S2)? From reading the ice documentation and this thead, it appears that the client will have to catch the exception and retry the invocation. Therefore, the migration process isn't entirely client-transparent. Is this still true with the latest ice-E release? I couldnt find any information about this with regards to ice-E. If anyone can shed some light on how this is handled in ice-E it'd be great!

    Ice also retries now on an ObjectNotExistException, so the client should retry transparently.