views:

47

answers:

2

I have an application running on a JBoss server. We need update the application time to time. However, the JBoss is not allowed stop(restart) during update for business reason. How do I handle this tricky situation? Thanks!

2 cases:

  1. If the application is deployed in multi servers in cluster mode.
  2. If the application is deployed in a single machine.
+1  A: 

If you can't stop the application even for a moment then you probably need to:

  1. To run both versions at the same time.
  2. Direct new users to the new version and allow existing user sessions to continue against the old version
  3. To be able to detect that the old version is no longer in use and hence can be stopped.

Each of the above is, in principle, possible but specifics of the applcations can present serious obstacles.

Many organisations simply take the view that there can be a small hiatus in service, for example at 2:00 AM on a Sunday morning. They warn users "system going down", then stop the old version and start the new. This is much simpler than providing 100% up-time.

One trick with this approach is that it may be possible (I know it can be done in WebSphere, don't know about JBOSS) to deply the new version of the app but not activate it. When an app takes several minutes to deploy and start this can shorten the down time.

djna
A: 

It's a common problem, and web apps can't really "updated" at runtime (unless it's a hotdeploy environment). Perhaps you want something like LiveRebel?

LiveRebel

Would you like to update your application in production with zero downtime? Avoid the tedious and error-prone application update roll-outs? Roll back unsuccessful updates with a press of a button? Then sign up to receive an invitation as soon as it’s available.

The Alchemist