You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Davide Romanini <d....@cineca.it> on 2005/07/22 10:59:03 UTC

Reloading web context in a cluster

Hi,

I'm developing some web services using Axis. The whole axis context
(containing all my services) is embedded as a servlet into Tomcat 5.5.9.
Any time I create a new version of one service, I need to replace the
previous jar file into WEB-INF/lib, so to make changes effective I also
must reload the axis context (using manager facility).

My problem is that in production environment we have 6 machines with a
shared filesystem (gpfs) in load-balancing. So I think that if I do a
reload of the context using manager, I actually reload just one of the 6
istances of Tomcat (the one answered me in that moment), but the other 5
don't see the changes made to WEB-INF/lib and continue to run and old
version of the service.

Take into account that I don't have access to each single machine of the
cluster, so I can't do a reload of all the 6 contexts from my machine.

There's a way to propagate a context reload between the clusters?? I
really need to access each machine and reload for each single Tomcat
instance?

Thanks in advance.

Bye,
Davide Romanini


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


Re: Reloading web context in a cluster

Posted by Davide Romanini <d....@cineca.it>.
Peter Rossbach ha scritto:
>>> b)   before you change your lib at one node please shutdown the 
>>> context with manager app or ant tasks.
>>> c)   Release change at runtime with cluster is heavy and can not made 
>>> with the same nodes.
>>>      OK, when no class changed that used inside session replication, 
>>> it can be work!
>>> d)   Don't change all nodes at the same time.
>>>          Change one and
>>>          after restart context - see that all session comes in.
>>>          Then made change the others.
>>> e)   Build cluster domains and not running all nodes inside one cluster.
>>>          Tomcat cluster replicated all sessions between every node 
>>> and this is very memory intensive.
>>>
>>>   
>>
>>
>> We are not using (for now) clustering features of Tomcat: we only have 6
>> instances of Tomcat running without knowing of the others, we have no
>> session replication.
>>
>>  
>>
> OK, but the word "cluster" means to mean me that replication is 
> active... :-)
> 

Yes, I didn't explained well... sorry :-)

>> So the only solution to update my classes seems to be:
>>
>> - unload the Axis context for each of the six machines
>> - update my jar file into WEB-INF/lib
>> - reload the Axis context for each of the six machines
>>
>>  
>>
> 
> Have you at the reloading="true" to your context.xml? At default tomcat 
> not look for class and jar updates!
> 

Mmmh, I think my context is reloadable, not sure... If it's not the only 
way to update my jars is to restart Tomcat??

Bye,
Davide Romanini


-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.323 / Virus Database: 267.9.2/55 - Release Date: 21/07/05


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


Re: Reloading web context in a cluster

Posted by Peter Rossbach <pr...@objektpark.de>.
Davide Romanini schrieb:

>Il giorno ven, 22/07/2005 alle 16.39 +0200, Peter Rossbach ha scritto:
>  
>
>>Hey,
>>
>>a)   don't share things between cluster nodes!
>>    
>>
>
>You mean that Tomcat has problems using a shared filesystem???
>
>  
>
No, tomcat has no problem with shared systems

>>b)   before you change your lib at one node please shutdown the context 
>>with manager app or ant tasks.
>>c)   Release change at runtime with cluster is heavy and can not made 
>>with the same nodes.
>>      OK, when no class changed that used inside session replication, it 
>>can be work!
>>d)   Don't change all nodes at the same time.
>>          Change one and
>>          after restart context - see that all session comes in.
>>          Then made change the others.
>>e)   Build cluster domains and not running all nodes inside one cluster.
>>          Tomcat cluster replicated all sessions between every node and 
>>this is very memory intensive.
>>
>>    
>>
>
>We are not using (for now) clustering features of Tomcat: we only have 6
>instances of Tomcat running without knowing of the others, we have no
>session replication.
>
>  
>
OK, but the word "cluster" means to mean me that replication is 
active... :-)

>So the only solution to update my classes seems to be:
>
>- unload the Axis context for each of the six machines
>- update my jar file into WEB-INF/lib
>- reload the Axis context for each of the six machines
>
>  
>

Have you at the reloading="true" to your context.xml? At default tomcat 
not look for class and jar updates!

>Am I right?
>
>  
>
I think no!

>Bye,
>Davide Romanini
>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>
>
>
>
>  
>


-- 
J2EE Systemarchitekt und Tomcat Experte

http://objektpark.de/
http://tomcat.objektpark.org/
http://centaurus.sourceforge.net/

Am Josephsschacht 72, 44879 Bochum, Deutschland
Telefon:  (49) 234 9413228
Mobil:    (49) 175 1660884
E-Mail:  pr@objektpark.de




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


Re: Reloading web context in a cluster

Posted by Davide Romanini <d....@cineca.it>.
Il giorno ven, 22/07/2005 alle 16.39 +0200, Peter Rossbach ha scritto:
> Hey,
> 
> a)   don't share things between cluster nodes!

You mean that Tomcat has problems using a shared filesystem???

> b)   before you change your lib at one node please shutdown the context 
> with manager app or ant tasks.
> c)   Release change at runtime with cluster is heavy and can not made 
> with the same nodes.
>       OK, when no class changed that used inside session replication, it 
> can be work!
> d)   Don't change all nodes at the same time.
>           Change one and
>           after restart context - see that all session comes in.
>           Then made change the others.
> e)   Build cluster domains and not running all nodes inside one cluster.
>           Tomcat cluster replicated all sessions between every node and 
> this is very memory intensive.
> 

We are not using (for now) clustering features of Tomcat: we only have 6
instances of Tomcat running without knowing of the others, we have no
session replication.

So the only solution to update my classes seems to be:

- unload the Axis context for each of the six machines
- update my jar file into WEB-INF/lib
- reload the Axis context for each of the six machines

Am I right?

Bye,
Davide Romanini



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


Re: Reloading web context in a cluster

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

a)   don't share things between cluster nodes!
b)   before you change your lib at one node please shutdown the context 
with manager app or ant tasks.
c)   Release change at runtime with cluster is heavy and can not made 
with the same nodes.
      OK, when no class changed that used inside session replication, it 
can be work!
d)   Don't change all nodes at the same time.
          Change one and
          after restart context - see that all session comes in.
          Then made change the others.
e)   Build cluster domains and not running all nodes inside one cluster.
          Tomcat cluster replicated all sessions between every node and 
this is very memory intensive.

Peter


Davide Romanini schrieb:

>Hi,
>
>I'm developing some web services using Axis. The whole axis context
>(containing all my services) is embedded as a servlet into Tomcat 5.5.9.
>Any time I create a new version of one service, I need to replace the
>previous jar file into WEB-INF/lib, so to make changes effective I also
>must reload the axis context (using manager facility).
>
>My problem is that in production environment we have 6 machines with a
>shared filesystem (gpfs) in load-balancing. So I think that if I do a
>reload of the context using manager, I actually reload just one of the 6
>istances of Tomcat (the one answered me in that moment), but the other 5
>don't see the changes made to WEB-INF/lib and continue to run and old
>version of the service.
>
>Take into account that I don't have access to each single machine of the
>cluster, so I can't do a reload of all the 6 contexts from my machine.
>
>There's a way to propagate a context reload between the clusters?? I
>really need to access each machine and reload for each single Tomcat
>instance?
>
>Thanks in advance.
>
>Bye,
>Davide Romanini
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>
>
>
>
>  
>


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