This discussion is archived
5 Replies Latest reply: Apr 6, 2013 5:24 AM by Hysun RSS

Can EP be upgraded in the fly without the need of restarting?

Hysun Newbie
Currently Being Moderated
Hi Guru,

We know EP (EntryProcessor) are running in the server side's JVMs. In the development phase, most commonly after we changed EP's logic, we just restart the cluster to take it effect. However that's not a convenient way in production environment. Is there a way to upgrade the EP in the fly without the need of restarting coherence nodes? Or is there any way to upgrade EP without service outage?

Thanks in advance,
- Hysun He
  • 1. Re: Can EP be upgraded in the fly without the need of restarting?
    Jonathan.Knight Expert
    Currently Being Moderated
    Hi Hysun He,

    There is no support built in to Coherence to do this but the members of a Coherence cluster are just normal JVMs so if you had a classloader implementation that allowed on the fly re-loading of byte code for a class (the same way that you can when debugging in an IDE) then it would be possible.

    JK
  • 2. Re: Can EP be upgraded in the fly without the need of restarting?
    robvarga Oracle ACE
    Currently Being Moderated
    Hysun wrote:
    Hi Guru,

    We know EP (EntryProcessor) are running in the server side's JVMs. In the development phase, most commonly after we changed EP's logic, we just restart the cluster to take it effect. However that's not a convenient way in production environment. Is there a way to upgrade the EP in the fly without the need of restarting coherence nodes? Or is there any way to upgrade EP without service outage?

    Thanks in advance,
    - Hysun He
    Hi Hysun He,

    If we are speaking about class replacement, that would imply that you can deploy new class files in the environment. In this case, why don't you just use a different class name?

    Best regards,

    Robert
  • 3. Re: Can EP be upgraded in the fly without the need of restarting?
    Hysun Newbie
    Currently Being Moderated
    Thanks JonathanK.

    Yes, implement a classloader to deploy/reload EP seems work. But it seems there are some other customization work to be done regarding to the version control. During/after the upgrade, some works running against the "old" version EP may still be in-progress, at the same time, new requests are distributed to the "new" version EP. It seems we need to employ a mechanism to ensure the smooth transition from the old version to new version. Any hints on this?

    Thanks,
    -Hysun
  • 4. Re: Can EP be upgraded in the fly without the need of restarting?
    robvarga Oracle ACE
    Currently Being Moderated
    Hysun wrote:
    Thanks JonathanK.

    Yes, implement a classloader to deploy/reload EP seems work. But it seems there are some other customization work to be done regarding to the version control. During/after the upgrade, some works running against the "old" version EP may still be in-progress, at the same time, new requests are distributed to the "new" version EP. It seems we need to employ a mechanism to ensure the smooth transition from the old version to new version. Any hints on this?

    Thanks,
    -Hysun
    Hi Hysun,

    It is not exactly that way. IMHO, you would not be able to unload the old version of the class while there are instances in the JVM running against it. So I don't think that having two versions of the same class in the same classloader is a possible scenario.

    Best regards,

    Robert
  • 5. Re: Can EP be upgraded in the fly without the need of restarting?
    Hysun Newbie
    Currently Being Moderated
    Thanks, Robert.

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points