You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Reinhard Moosauer <rm...@moosauer.de> on 2006/03/14 13:53:16 UTC

manager-remove/undeploy without losing sessions

Hello List,

recently I upgraded from tomcat 5.5.9 to 5.5.15
Since then, all my sessions are lost after a remove/install via the manager.

The problem is the following:
I installed a war-file, which is copied to the webapps-folder during 
manager-install. When I want to replace the war with a new version, I _have_ 
to undeploy, which deletes my persistent sessions too.

How can I get back the smooth behavior of 5.5.9, which allowed me an 
application update on the fly without disturbing user sessions?

many thanks in advance for your advice

Reinhard

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: manager-remove/undeploy without losing sessions

Posted by Reinhard Moosauer <rm...@moosauer.de>.
Peter,

you saved me. Thanks a lot!
I also upgraded to using the deploy-task with update="true" and got even 
better behavior than before. 
Application-update works with a sub-second downtime now.

BTW I use in META-INF/context.xml:
<Context>
  <Manager pathname="${catalina.base}/conf/Catalina/myapp_SESSIONS.ser" />
</Context>
as the path. This it is working out of the box without creating dirs and 
setting permissions.


Reinhard

Am Dienstag, 14. März 2006 16:29 schrieb Peter Rossbach:
> Please open a bug report,
> then we can better discuss the issue.
>
> Peter
>
> Am 14.03.2006 um 16:21 schrieb Reinhard Moosauer:
> > Hi Peter,
> >
> > thanks for making it clear.
> >
> > I would appreciate your opinon in how we could enhance this:
> >
> > - I think, even on production systems, there should be a
> > possibility to
> >   do a 'soft' application update without interrupting all users.
> >   When only minor changes in the application are made, the session
> > state
> >   should be fully compatible.
> > - I agree, that in many situations, a clear state is very much
> > helpful.
> >   But this applies even more to development systems, doesn't it?
> > - I hoped, we could simply add a manager attribute 'keepSessions'
> > to the
> >  undeploy-task. But I am afraid, that's no easy to get, because
> > deletion is
> >    not done in the manager but in the context.
> >   Do you think its possible?
> > - It would be quite straightforward, if the 'update'-attribute to
> >    manager-deploy would have just this effect.
> >
> > If anyone has a good idea how to do this, please let me know.
> > All other please vote for this enhancement because we have lost a
> > very nice
> > feature here.
> >
> > kind regards,
> >
> > Reinhard
> >
> > Am Dienstag, 14. März 2006 15:44 schrieb Peter Rossbach:
> >> Hmm,
> >>
> >> I thing you are right.
> >>
> >> ContextConfig.destroy() remove the working dir after undeploy the
> >> app.
> >>
> >>      /**
> >>       * Process a "destroy" event for this Context.
> >>       */
> >>      protected synchronized void destroy() {
> >>          // Called from StandardContext.destroy()
> >>          if (log.isDebugEnabled())
> >>              log.debug(sm.getString("contextConfig.destroy"));
> >>
> >>          // Changed to getWorkPath per Bugzilla 35819.
> >>          String workDir = ((StandardContext) context).getWorkPath();
> >>          if (workDir != null)
> >>              ExpandWar.delete(new File(workDir));
> >>      }
> >>
> >> This feature is important do guaranty a clear state after change the
> >> binary. Feel free to open
> >> an enhancement bug report, and feel free to add a patch. The current
> >> behaviour is
> >> correct for production sites.
> >>
> >> Peter
> >>
> >> Am 14.03.2006 um 15:03 schrieb Reinhard Moosauer:
> >>> Hi List,
> >>>
> >>> I found something, that looked promising, but did not work.
> >>> Developers, please look, this could be a bug:
> >>>
> >>> The deploy-task has an attribute "update", removes the context
> >>> before
> >>> re-installing it. I hoped that this one would do what I want.
> >>>
> >>> But unfortunately, it is equivalent to undeploy/deploy so my
> >>> sessions are gone
> >>> again. :-(
> >>>
> >>> Maybe I have to clarify, what I am doing with my sessions (for
> >>> Rodrigo):
> >>>
> >>> I have all session-attribute in my application serializable, so
> >>> that tomcat
> >>> can save all session data to disk when the context or tomcat
> >>> itself is
> >>> stopped.
> >>> At startup these serialized data is being read back by tomcat
> >>> automatically.
> >>> As a result, users can coutinue their work exactly where the are.
> >>> (Except that the application is not available for 1-2 seconds. But
> >>> it is still
> >>> unlikely that a users fires a request just in this moment, at least
> >>> for
> >>> medium-frequency apps)
> >>> Formerly, the persisted session data survived the remove, so I could
> >>> re-install the app.
> >>>
> >>> Please help!
> >>>
> >>> Reinhard
> >>>
> >>> Am Dienstag, 14. März 2006 13:53 schrieb Reinhard Moosauer:
> >>>> Hello List,
> >>>>
> >>>> recently I upgraded from tomcat 5.5.9 to 5.5.15
> >>>> Since then, all my sessions are lost after a remove/install via the
> >>>> manager.
> >>>>
> >>>> The problem is the following:
> >>>> I installed a war-file, which is copied to the webapps-folder
> >>>> during
> >>>> manager-install. When I want to replace the war with a new
> >>>> version, I
> >>>> _have_ to undeploy, which deletes my persistent sessions too.
> >>>>
> >>>> How can I get back the smooth behavior of 5.5.9, which allowed
> >>>> me an
> >>>> application update on the fly without disturbing user sessions?
> >>>>
> >>>> many thanks in advance for your advice
> >>>>
> >>>> Reinhard
> >>>>
> >>>> -------------------------------------------------------------------
> >>>> --
> >>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> >>>> For additional commands, e-mail: users-help@tomcat.apache.org
> >>>
> >>> --------------------------------------------------------------------
> >>> -
> >>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> >>> For additional commands, e-mail: users-help@tomcat.apache.org
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> >> For additional commands, e-mail: users-help@tomcat.apache.org
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> > For additional commands, e-mail: users-help@tomcat.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: manager-remove/undeploy without losing sessions

Posted by Peter Rossbach <pr...@objektpark.de>.
Please open a bug report,
then we can better discuss the issue.

Peter


Am 14.03.2006 um 16:21 schrieb Reinhard Moosauer:

> Hi Peter,
>
> thanks for making it clear.
>
> I would appreciate your opinon in how we could enhance this:
>
> - I think, even on production systems, there should be a  
> possibility to
>   do a 'soft' application update without interrupting all users.
>   When only minor changes in the application are made, the session  
> state
>   should be fully compatible.
> - I agree, that in many situations, a clear state is very much  
> helpful.
>   But this applies even more to development systems, doesn't it?
> - I hoped, we could simply add a manager attribute 'keepSessions'  
> to the
>  undeploy-task. But I am afraid, that's no easy to get, because  
> deletion is
>    not done in the manager but in the context.
>   Do you think its possible?
> - It would be quite straightforward, if the 'update'-attribute to
>    manager-deploy would have just this effect.
>
> If anyone has a good idea how to do this, please let me know.
> All other please vote for this enhancement because we have lost a  
> very nice
> feature here.
>
> kind regards,
>
> Reinhard
>
>
> Am Dienstag, 14. März 2006 15:44 schrieb Peter Rossbach:
>> Hmm,
>>
>> I thing you are right.
>>
>> ContextConfig.destroy() remove the working dir after undeploy the  
>> app.
>>
>>      /**
>>       * Process a "destroy" event for this Context.
>>       */
>>      protected synchronized void destroy() {
>>          // Called from StandardContext.destroy()
>>          if (log.isDebugEnabled())
>>              log.debug(sm.getString("contextConfig.destroy"));
>>
>>          // Changed to getWorkPath per Bugzilla 35819.
>>          String workDir = ((StandardContext) context).getWorkPath();
>>          if (workDir != null)
>>              ExpandWar.delete(new File(workDir));
>>      }
>>
>> This feature is important do guaranty a clear state after change the
>> binary. Feel free to open
>> an enhancement bug report, and feel free to add a patch. The current
>> behaviour is
>> correct for production sites.
>>
>> Peter
>>
>> Am 14.03.2006 um 15:03 schrieb Reinhard Moosauer:
>>> Hi List,
>>>
>>> I found something, that looked promising, but did not work.
>>> Developers, please look, this could be a bug:
>>>
>>> The deploy-task has an attribute "update", removes the context  
>>> before
>>> re-installing it. I hoped that this one would do what I want.
>>>
>>> But unfortunately, it is equivalent to undeploy/deploy so my
>>> sessions are gone
>>> again. :-(
>>>
>>> Maybe I have to clarify, what I am doing with my sessions (for
>>> Rodrigo):
>>>
>>> I have all session-attribute in my application serializable, so
>>> that tomcat
>>> can save all session data to disk when the context or tomcat  
>>> itself is
>>> stopped.
>>> At startup these serialized data is being read back by tomcat
>>> automatically.
>>> As a result, users can coutinue their work exactly where the are.
>>> (Except that the application is not available for 1-2 seconds. But
>>> it is still
>>> unlikely that a users fires a request just in this moment, at least
>>> for
>>> medium-frequency apps)
>>> Formerly, the persisted session data survived the remove, so I could
>>> re-install the app.
>>>
>>> Please help!
>>>
>>> Reinhard
>>>
>>> Am Dienstag, 14. März 2006 13:53 schrieb Reinhard Moosauer:
>>>> Hello List,
>>>>
>>>> recently I upgraded from tomcat 5.5.9 to 5.5.15
>>>> Since then, all my sessions are lost after a remove/install via the
>>>> manager.
>>>>
>>>> The problem is the following:
>>>> I installed a war-file, which is copied to the webapps-folder  
>>>> during
>>>> manager-install. When I want to replace the war with a new  
>>>> version, I
>>>> _have_ to undeploy, which deletes my persistent sessions too.
>>>>
>>>> How can I get back the smooth behavior of 5.5.9, which allowed  
>>>> me an
>>>> application update on the fly without disturbing user sessions?
>>>>
>>>> many thanks in advance for your advice
>>>>
>>>> Reinhard
>>>>
>>>> ------------------------------------------------------------------- 
>>>> --
>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>
>>> -------------------------------------------------------------------- 
>>> -
>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: manager-remove/undeploy without losing sessions

Posted by Reinhard Moosauer <rm...@moosauer.de>.
Hi Peter,

thanks for making it clear.

I would appreciate your opinon in how we could enhance this:

- I think, even on production systems, there should be a possibility to 
  do a 'soft' application update without interrupting all users.
  When only minor changes in the application are made, the session state 
  should be fully compatible.
- I agree, that in many situations, a clear state is very much helpful.
  But this applies even more to development systems, doesn't it?
- I hoped, we could simply add a manager attribute 'keepSessions' to the 
 undeploy-task. But I am afraid, that's no easy to get, because deletion is
   not done in the manager but in the context. 
  Do you think its possible?
- It would be quite straightforward, if the 'update'-attribute to
   manager-deploy would have just this effect. 

If anyone has a good idea how to do this, please let me know.
All other please vote for this enhancement because we have lost a very nice 
feature here.

kind regards,

Reinhard


Am Dienstag, 14. März 2006 15:44 schrieb Peter Rossbach:
> Hmm,
>
> I thing you are right.
>
> ContextConfig.destroy() remove the working dir after undeploy the app.
>
>      /**
>       * Process a "destroy" event for this Context.
>       */
>      protected synchronized void destroy() {
>          // Called from StandardContext.destroy()
>          if (log.isDebugEnabled())
>              log.debug(sm.getString("contextConfig.destroy"));
>
>          // Changed to getWorkPath per Bugzilla 35819.
>          String workDir = ((StandardContext) context).getWorkPath();
>          if (workDir != null)
>              ExpandWar.delete(new File(workDir));
>      }
>
> This feature is important do guaranty a clear state after change the
> binary. Feel free to open
> an enhancement bug report, and feel free to add a patch. The current
> behaviour is
> correct for production sites.
>
> Peter
>
> Am 14.03.2006 um 15:03 schrieb Reinhard Moosauer:
> > Hi List,
> >
> > I found something, that looked promising, but did not work.
> > Developers, please look, this could be a bug:
> >
> > The deploy-task has an attribute "update", removes the context before
> > re-installing it. I hoped that this one would do what I want.
> >
> > But unfortunately, it is equivalent to undeploy/deploy so my
> > sessions are gone
> > again. :-(
> >
> > Maybe I have to clarify, what I am doing with my sessions (for
> > Rodrigo):
> >
> > I have all session-attribute in my application serializable, so
> > that tomcat
> > can save all session data to disk when the context or tomcat itself is
> > stopped.
> > At startup these serialized data is being read back by tomcat
> > automatically.
> > As a result, users can coutinue their work exactly where the are.
> > (Except that the application is not available for 1-2 seconds. But
> > it is still
> > unlikely that a users fires a request just in this moment, at least
> > for
> > medium-frequency apps)
> > Formerly, the persisted session data survived the remove, so I could
> > re-install the app.
> >
> > Please help!
> >
> > Reinhard
> >
> > Am Dienstag, 14. März 2006 13:53 schrieb Reinhard Moosauer:
> >> Hello List,
> >>
> >> recently I upgraded from tomcat 5.5.9 to 5.5.15
> >> Since then, all my sessions are lost after a remove/install via the
> >> manager.
> >>
> >> The problem is the following:
> >> I installed a war-file, which is copied to the webapps-folder during
> >> manager-install. When I want to replace the war with a new version, I
> >> _have_ to undeploy, which deletes my persistent sessions too.
> >>
> >> How can I get back the smooth behavior of 5.5.9, which allowed me an
> >> application update on the fly without disturbing user sessions?
> >>
> >> many thanks in advance for your advice
> >>
> >> Reinhard
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> >> For additional commands, e-mail: users-help@tomcat.apache.org
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> > For additional commands, e-mail: users-help@tomcat.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: manager-remove/undeploy without losing sessions

Posted by Peter Rossbach <pr...@objektpark.de>.
Hmm,

I thing you are right.

ContextConfig.destroy() remove the working dir after undeploy the app.

     /**
      * Process a "destroy" event for this Context.
      */
     protected synchronized void destroy() {
         // Called from StandardContext.destroy()
         if (log.isDebugEnabled())
             log.debug(sm.getString("contextConfig.destroy"));

         // Changed to getWorkPath per Bugzilla 35819.
         String workDir = ((StandardContext) context).getWorkPath();
         if (workDir != null)
             ExpandWar.delete(new File(workDir));
     }

This feature is important do guaranty a clear state after change the  
binary. Feel free to open
an enhancement bug report, and feel free to add a patch. The current  
behaviour is
correct for production sites.

Peter



Am 14.03.2006 um 15:03 schrieb Reinhard Moosauer:

> Hi List,
>
> I found something, that looked promising, but did not work.
> Developers, please look, this could be a bug:
>
> The deploy-task has an attribute "update", removes the context before
> re-installing it. I hoped that this one would do what I want.
>
> But unfortunately, it is equivalent to undeploy/deploy so my  
> sessions are gone
> again. :-(
>
> Maybe I have to clarify, what I am doing with my sessions (for  
> Rodrigo):
>
> I have all session-attribute in my application serializable, so  
> that tomcat
> can save all session data to disk when the context or tomcat itself is
> stopped.
> At startup these serialized data is being read back by tomcat  
> automatically.
> As a result, users can coutinue their work exactly where the are.
> (Except that the application is not available for 1-2 seconds. But  
> it is still
> unlikely that a users fires a request just in this moment, at least  
> for
> medium-frequency apps)
> Formerly, the persisted session data survived the remove, so I could
> re-install the app.
>
> Please help!
>
> Reinhard
>
> Am Dienstag, 14. März 2006 13:53 schrieb Reinhard Moosauer:
>> Hello List,
>>
>> recently I upgraded from tomcat 5.5.9 to 5.5.15
>> Since then, all my sessions are lost after a remove/install via the
>> manager.
>>
>> The problem is the following:
>> I installed a war-file, which is copied to the webapps-folder during
>> manager-install. When I want to replace the war with a new version, I
>> _have_ to undeploy, which deletes my persistent sessions too.
>>
>> How can I get back the smooth behavior of 5.5.9, which allowed me an
>> application update on the fly without disturbing user sessions?
>>
>> many thanks in advance for your advice
>>
>> Reinhard
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: manager-remove/undeploy without losing sessions

Posted by Reinhard Moosauer <rm...@moosauer.de>.
Hi List,

I found something, that looked promising, but did not work.
Developers, please look, this could be a bug:

The deploy-task has an attribute "update", removes the context before 
re-installing it. I hoped that this one would do what I want.

But unfortunately, it is equivalent to undeploy/deploy so my sessions are gone 
again. :-(

Maybe I have to clarify, what I am doing with my sessions (for Rodrigo):

I have all session-attribute in my application serializable, so that tomcat 
can save all session data to disk when the context or tomcat itself is 
stopped.
At startup these serialized data is being read back by tomcat automatically. 
As a result, users can coutinue their work exactly where the are. 
(Except that the application is not available for 1-2 seconds. But it is still 
unlikely that a users fires a request just in this moment, at least for 
medium-frequency apps)
Formerly, the persisted session data survived the remove, so I could 
re-install the app.

Please help!

Reinhard

Am Dienstag, 14. März 2006 13:53 schrieb Reinhard Moosauer:
> Hello List,
>
> recently I upgraded from tomcat 5.5.9 to 5.5.15
> Since then, all my sessions are lost after a remove/install via the
> manager.
>
> The problem is the following:
> I installed a war-file, which is copied to the webapps-folder during
> manager-install. When I want to replace the war with a new version, I
> _have_ to undeploy, which deletes my persistent sessions too.
>
> How can I get back the smooth behavior of 5.5.9, which allowed me an
> application update on the fly without disturbing user sessions?
>
> many thanks in advance for your advice
>
> Reinhard
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org