You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Christopher Schultz <ch...@christopherschultz.net> on 2013/05/28 18:22:05 UTC

Re: Reuse work temp directories

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Vicky,

On 5/28/13 2:30 AM, vicky007aggarwal@yahoo.co.in wrote:
> Is there is a way by which we can create work & temp directories
> on run time so that we can avoid creating multiple tomcat
> instances having there individual work & temp directories.

Can you ask that question in a different way, or explain in a little
more detail? It's unclear to me what you are trying to achieve.

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBCAAGBQJRpNmsAAoJEBzwKT+lPKRYiWMP/RhsnJmEebmJVXcL1cK5YxZX
FfOHQ5w/EkqK41v0V2b12VPF5+DExybRudvmFOn5Z3qP/Fy5KN3zwmjSikxVuDl8
WRagBOy0fxeUFX7xfKU5Isatpjjg+87gomwDJcG5QGpbQEtBEeHckyknceDCnA8L
KO+EdiEpAMxiU/KmGlsYP64niAU0JZewGiHujsM/K95R8GroNy8N59hSO1CVuu6d
+9EOJ/0D/xvSqf7fhhxZq2OAFZcpLZR9iJUxXeyTDhPv630LW0tVCh2Q0MwDxufr
NNmPw+INAB83WnTal6bWSFj7nvgt82E9EshpBtffz7n6JBMAWPy/VJHNGW+z8sik
/8b3PI2TFtDHyJ0GtuCnoFZ0IJp1sZYR/TZACKgc3GmfS5FZ5Oo3b3rAPnTiAQDx
Zezk5uV6uI82jR8kNyOIm205UT4HuHPzrxRgLBM81ajI6riMYG/BxEbc87hg+Zm2
Truaq0xTaT/PGLjcJJKL2F6tOjhMDI0iZvCowNzjkdfIH+QZCSduK5mJTXFJsgyt
ZGOuNVmu5lJvFociCF6gVS9xo2VebxU2WGnqshKtZJ8ZaawYv/2MGmA7f8YmY0hJ
m4TmHv10OuoPjh8mDQZOandQt2MdKKHlvk32qs6Tu0C1uBSlBeEypREEU23jb1Y3
w9OueU5DNjr1M7OPVqN3
=KiGF
-----END PGP SIGNATURE-----

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


Re: Reuse work temp directories

Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Vicky,

On 5/28/13 1:21 PM, vicky007aggarwal@yahoo.co.in wrote:
> Thanks David & Chris for responding back.
> 
> Actually i am doing a proof of concept,in which in want to use the
> same CATALINA_BASE across in lieu of creating 10 different tomcat
> instances.
> 
> I am doing this by using variables in server.xml for port
> numbers,work directories etc. & then i am passing the respective
> values to the tomcat startup script as arguments.
> 
> The idea is to get away from the need of creating tomcat instances
> & to have one common config file which will be used for running
> multiple instances using single catalina_base .with this i  can
> reduce lot of support work & it will be easier to maintain as
> well.

So you want to have separate instances (e.g. JVM processes) but you
want them all to use the same set of parameterized configuration files?

Why not have a set of scripts that generates server.xml files on the
fly for you? That's what we have set up through ant: we have a
template server.xml (and context.xml for our webapps) and then we
merge parameters for each webapp (or instance) at deployment-time.

I think you will never want to use the same work and/or temp
directories because you could have two instances with the same context
deployed and they would interfere with each other in unexpected ways.


> So related to this My Queries are :-
> 
> 1) do you guys find this approach as reliable in which i will be
> passing the port numbers,work directory location & catalina base to
> tomcat startup script as argument on runtime??? 2) Are there any
> concerns/pitfalls which i should take care ? 3) i am not able to
> create separate temp directory for the instances ,is it possible to
> change the temp location which is used by tomcat instances or it
> can be shared across multiple instances ?
> 
> Please suggest i really need your guidance.

I think it's likely to be overly complicated, since you need to
maintain a whole set of scripts that basically just moves the problem
of separate server.xml files into separate script files. What's the
difference?

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
Comment: GPGTools - http://gpgtools.org
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBCAAGBQJRpRNYAAoJEBzwKT+lPKRYiAIP/3XkaGZvaMbzmu0uYxm9v55i
M+jn8KasYV4FlmY9HXn8iOCCPhcopz8Qh0nAmXIP2ONG11L4EzxMQDHJKirgrpBb
o0LB1z3Qb6VGftywPvnQ3WG21WsLJcRB+YJf0TBazWaJ7XEjs91Agwa9/cLNn6S7
Ndpt9PWAKo1FBywkdALI6Mj0KP9FHlxIrH64WEesXJhbeYe/CbCoUvnMKmO2HWog
ehCS9DoelS5IQ+AXjMGK1mJfUVbVF9YWxd4CQ3S6r6I9KRmPPwCmYR1gFfyE5n+M
RWCHDoCMSrmdB3zQODscgN5JJP0nsr8g4HiBVjQLMvKyUhcBXAtuAnX00ujtOeSi
ZC+frgdFaWRABteSL5d8nl/T9R4hzCQtiW+9GSZuID16nh6su0csVNXh9gBnVfCg
W6mljeKXhHmY69mpbnI0/e9tGOyhbghWfLwBiXLfu+o4KGA8zBJkGHGVJLFyeWW9
vl8MR1VMdRsBBzcjNFwOUT7BLhBncGUS77fwWTBvHb/Y1vfF9LTTppkxlq7kQqQJ
H05+mXYAnV4iux4Ne+UXLj4saA692jbETaYZwerLgEXb6MnCeDuG8n8fBbrRwKQf
qTeT9lA4AmTFGMkZTUGaa4pJ3TU7dhmOcMgJzAVuJwCmg7G2qzVfYIzUNZ9o9w++
vQX+1azsinOq2MIaI+Rr
=b8jY
-----END PGP SIGNATURE-----

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


Re: Reuse work temp directories

Posted by Mark Eggers <it...@yahoo.com>.
Comments in-line.

On 5/28/2013 10:21 AM, vicky007aggarwal@yahoo.co.in wrote:
> Thanks David & Chris for responding back.
>
> Actually i am doing a proof of concept,in which in want to use the
> same CATALINA_BASE across in lieu of creating 10 different tomcat
> instances.
>
> I am doing this by using variables in server.xml for port
> numbers,work directories etc. & then i am passing the respective
> values to the tomcat startup script as arguments.
>
> The idea is to get away from the need of creating tomcat instances &
> to have one common config file which will be used for running
> multiple instances using single catalina_base .with this i  can
> reduce lot of support work & it will be easier to maintain as well.
>

I'm not sure how this solves a lot of support and maintenance problems.

So your script would look like the following?

ascript.sh -Dshutdown.port=xxxx -Dhttp.port=yyyy -Dajp.port=zzzz

(etc., etc., etc.)

How do you track all of these 10 instances? Do you write 10 scripts with 
this information embedded in them, one script that reads a parameters 
file, or . . . .?

So for an operator to manage this (start, stop, etc.), the person would 
have to know 10 different invocations of your script (shorter if you 
store parameters in files).

Then, if your operators like GUI interfaces, how do these scripts get 
folded into a services GUI like those provided by RedHat, et al?

My current method of managing all of this is something like the following:

a. Single CATALINA_HOME
b. CATALINA_BASE per usage (where usage is nebulously defined)
c. init.d service script per CATALINA_BASE
d. One or more Host elements per CATALINA_BASE

I have one Ant script that does the work of creating b) and c) from a). 
I have another Ant script that does the work of managing d).

The Ant scripts read property files that serve as documentation for 
CATALINA_BASE and the Host elements. There are lots of nice comments in 
the property files.

xmltask and the external tidy program work great for most of the XML 
mangling tasks.

It takes me longer to edit the property files than it does to create the 
actual new instance. Maybe I'll store the information in a Derby 
database, query it, and compute the next appropriate value . . .

Operators can start, stop, restart, check status on each service from 
the command line, or add the service to the GUI and do it that way.

Upgrading is still a little bit of a challenge, but I'm working on a 
script that will help discover and merge changes from new versions of 
CATALINA_HOME/conf/*. Right now, I do the check manually, and modify the 
Ant script if there has been a change in the Connector or Host elements 
(none so far).

If things get a little crazier, I'll look at something like Puppet or Chef.

> So related to this My Queries are :-
>
> 1) do you guys find this approach as reliable in which i will be
> passing the port numbers,work directory location & catalina base to
> tomcat startup script as argument on runtime???

I always worry about typing errors. I worry about typing errors a lot 
more when I'm root. Relying on adding arguments at run time seems to be 
dangerous. Also, how would you script this as a service?

> 2) Are there any concerns/pitfalls which i should take care ?

See above. I'm thinking that there are three issues.

a. typos, typos, typos
b. automated scripts for services / operators
c. documentation, documentation, documentation

3) i am not able to
> create separate temp directory for the instances ,is it possible to
> change the temp location which is used by tomcat instances or it can
> be shared across multiple instances ?

Why not?

a. Create an unprivileged user for running Tomcats
b. Do not allow remote access - su to that user only (accounting is
    nice)
c. Create everything for Tomcat in that directory (except service
    scripts)
d. Use service scripts or jsvc to run Tomcat instances

You have one place to back up, one place to upgrade, tools for creating 
new instances and new Host nodes in the instances, and the operator 
interface ends looking like any other service.

You could use the system's temp directory by overriding java.io.tmpdir. 
Note that serialized sessions are placed here, so if there is sensitive 
information that may not be a good idea.

Work directories is another matter. This is where Tomcat translates JSP 
to Java, and then compiles the resulting servlet. I can imagine some not 
too pleasant complications if:

a. Multiple Tomcats share the same work directory
b. Multiple Tomcats use the same Host element (localhost for example)
c. Multiple Tomcats run different versions of the same web application

You're likely to get collisions in:

work_dir/Catalina/localhost/app_name/org/apache/jsp

I'd have to look at the code, but I think Tomcat just checks timestamps 
and not size or content. I'm not sure how Tomcat would differentiate 
between two versions of the same JSP from different Tomcats sharing the 
same work directory.

>
> Please suggest i really need your guidance.
>
> Thanks, Vicky
>

This seems to be a lot of effort in order to solve a problem that's not 
really all that huge (especially for 10 Tomcat instances).

. . . . just my two cents
/mde/

>
>
> On May 28, 2013, at 9:56 PM, David kerber <dc...@verizon.net>
> wrote:
>
>> On 5/28/2013 12:22 PM, Christopher Schultz wrote:
>>> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
>>>
>>> Vicky,
>>>
>>> On 5/28/13 2:30 AM, vicky007aggarwal@yahoo.co.in wrote:
>>>> Is there is a way by which we can create work&  temp
>>>> directories on run time so that we can avoid creating multiple
>>>> tomcat instances having there individual work&  temp
>>>> directories.
>>>
>>> Can you ask that question in a different way, or explain in a
>>> little more detail? It's unclear to me what you are trying to
>>> achieve.
>>
>> It looks to me like she wants to have single work and temp
>> directories, to be used by all tomcat instances.  Though I'm not
>> sure what the "on run time" is referring to.
>>
>>
>>>
>>> - -chris


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


Re: Reuse work temp directories

Posted by David kerber <dc...@verizon.net>.
On 5/28/2013 1:21 PM, vicky007aggarwal@yahoo.co.in wrote:
> Thanks David&  Chris for responding back.
>
> Actually i am doing a proof of concept,in which in want to use the same CATALINA_BASE across in lieu of creating 10 different tomcat instances.
>
> I am doing this by using variables in server.xml for port numbers,work directories etc.&  then i am passing the respective values to the tomcat startup script as arguments.
>
> The idea is to get away from the need of creating tomcat instances&  to have one common config file which will be used for running multiple instances using single catalina_base .with this i  can reduce lot of support work&  it will be easier to maintain as well.

I guess I'm not understanding your definition of "tomcat instances". 
What you're describing is what I mean by that term:  multiple instances 
of tomcat, running (potentially) from different Catalina_base locations.

If by "Tomcat instances", you mean separate installations of tomcat on 
disk, then that is absolutely not required, and what you're describing 
is the way to go.  I run a dozen or more "instances" of TC from a single 
installation, with each webapp running from its own _base directory.  I 
don't share server.xml files, though; I just copy them and change the 
port settings in each one, and each has its own work and temp 
directories.  Creating the separate _base directories is easy to script, 
and doesn't require separate installations of tomcat itself.


>
> So related to this My Queries are :-
>
> 1) do you guys find this approach as reliable in which i will be passing the port numbers,work directory location&  catalina base to tomcat startup script as argument on runtime???
> 2) Are there any concerns/pitfalls which i should take care ?
> 3) i am not able to create separate temp directory for the instances ,is it possible to change the temp location which is used by tomcat instances or it can be shared across multiple instances ?
>
> Please suggest i really need your guidance.
>
> Thanks,
> Vicky
>
>
>
> On May 28, 2013, at 9:56 PM, David kerber<dc...@verizon.net>  wrote:
>
>> On 5/28/2013 12:22 PM, Christopher Schultz wrote:
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA256
>>>
>>> Vicky,
>>>
>>> On 5/28/13 2:30 AM, vicky007aggarwal@yahoo.co.in wrote:
>>>> Is there is a way by which we can create work&   temp directories
>>>> on run time so that we can avoid creating multiple tomcat
>>>> instances having there individual work&   temp directories.
>>>
>>> Can you ask that question in a different way, or explain in a little
>>> more detail? It's unclear to me what you are trying to achieve.
>>
>> It looks to me like she wants to have single work and temp directories, to be used by all tomcat instances.  Though I'm not sure what the "on run time" is referring to.
>>
>>
>>>
>>> - -chris
>>> -----BEGIN PGP SIGNATURE-----
>>> Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
>>> Comment: GPGTools - http://gpgtools.org
>>> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>>>
>>> iQIcBAEBCAAGBQJRpNmsAAoJEBzwKT+lPKRYiWMP/RhsnJmEebmJVXcL1cK5YxZX
>>> FfOHQ5w/EkqK41v0V2b12VPF5+DExybRudvmFOn5Z3qP/Fy5KN3zwmjSikxVuDl8
>>> WRagBOy0fxeUFX7xfKU5Isatpjjg+87gomwDJcG5QGpbQEtBEeHckyknceDCnA8L
>>> KO+EdiEpAMxiU/KmGlsYP64niAU0JZewGiHujsM/K95R8GroNy8N59hSO1CVuu6d
>>> +9EOJ/0D/xvSqf7fhhxZq2OAFZcpLZR9iJUxXeyTDhPv630LW0tVCh2Q0MwDxufr
>>> NNmPw+INAB83WnTal6bWSFj7nvgt82E9EshpBtffz7n6JBMAWPy/VJHNGW+z8sik
>>> /8b3PI2TFtDHyJ0GtuCnoFZ0IJp1sZYR/TZACKgc3GmfS5FZ5Oo3b3rAPnTiAQDx
>>> Zezk5uV6uI82jR8kNyOIm205UT4HuHPzrxRgLBM81ajI6riMYG/BxEbc87hg+Zm2
>>> Truaq0xTaT/PGLjcJJKL2F6tOjhMDI0iZvCowNzjkdfIH+QZCSduK5mJTXFJsgyt
>>> ZGOuNVmu5lJvFociCF6gVS9xo2VebxU2WGnqshKtZJ8ZaawYv/2MGmA7f8YmY0hJ
>>> m4TmHv10OuoPjh8mDQZOandQt2MdKKHlvk32qs6Tu0C1uBSlBeEypREEU23jb1Y3
>>> w9OueU5DNjr1M7OPVqN3
>>> =KiGF
>>> -----END PGP SIGNATURE-----


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


Re: Reuse work temp directories

Posted by vi...@yahoo.co.in.
Thanks David & Chris for responding back.

Actually i am doing a proof of concept,in which in want to use the same CATALINA_BASE across in lieu of creating 10 different tomcat instances.

I am doing this by using variables in server.xml for port numbers,work directories etc. & then i am passing the respective values to the tomcat startup script as arguments.

The idea is to get away from the need of creating tomcat instances & to have one common config file which will be used for running multiple instances using single catalina_base .with this i  can reduce lot of support work & it will be easier to maintain as well.

So related to this My Queries are :-

1) do you guys find this approach as reliable in which i will be passing the port numbers,work directory location & catalina base to tomcat startup script as argument on runtime???
2) Are there any concerns/pitfalls which i should take care ?
3) i am not able to create separate temp directory for the instances ,is it possible to change the temp location which is used by tomcat instances or it can be shared across multiple instances ?

Please suggest i really need your guidance.

Thanks,
Vicky



On May 28, 2013, at 9:56 PM, David kerber <dc...@verizon.net> wrote:

> On 5/28/2013 12:22 PM, Christopher Schultz wrote:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA256
>> 
>> Vicky,
>> 
>> On 5/28/13 2:30 AM, vicky007aggarwal@yahoo.co.in wrote:
>>> Is there is a way by which we can create work&  temp directories
>>> on run time so that we can avoid creating multiple tomcat
>>> instances having there individual work&  temp directories.
>> 
>> Can you ask that question in a different way, or explain in a little
>> more detail? It's unclear to me what you are trying to achieve.
> 
> It looks to me like she wants to have single work and temp directories, to be used by all tomcat instances.  Though I'm not sure what the "on run time" is referring to.
> 
> 
>> 
>> - -chris
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
>> Comment: GPGTools - http://gpgtools.org
>> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>> 
>> iQIcBAEBCAAGBQJRpNmsAAoJEBzwKT+lPKRYiWMP/RhsnJmEebmJVXcL1cK5YxZX
>> FfOHQ5w/EkqK41v0V2b12VPF5+DExybRudvmFOn5Z3qP/Fy5KN3zwmjSikxVuDl8
>> WRagBOy0fxeUFX7xfKU5Isatpjjg+87gomwDJcG5QGpbQEtBEeHckyknceDCnA8L
>> KO+EdiEpAMxiU/KmGlsYP64niAU0JZewGiHujsM/K95R8GroNy8N59hSO1CVuu6d
>> +9EOJ/0D/xvSqf7fhhxZq2OAFZcpLZR9iJUxXeyTDhPv630LW0tVCh2Q0MwDxufr
>> NNmPw+INAB83WnTal6bWSFj7nvgt82E9EshpBtffz7n6JBMAWPy/VJHNGW+z8sik
>> /8b3PI2TFtDHyJ0GtuCnoFZ0IJp1sZYR/TZACKgc3GmfS5FZ5Oo3b3rAPnTiAQDx
>> Zezk5uV6uI82jR8kNyOIm205UT4HuHPzrxRgLBM81ajI6riMYG/BxEbc87hg+Zm2
>> Truaq0xTaT/PGLjcJJKL2F6tOjhMDI0iZvCowNzjkdfIH+QZCSduK5mJTXFJsgyt
>> ZGOuNVmu5lJvFociCF6gVS9xo2VebxU2WGnqshKtZJ8ZaawYv/2MGmA7f8YmY0hJ
>> m4TmHv10OuoPjh8mDQZOandQt2MdKKHlvk32qs6Tu0C1uBSlBeEypREEU23jb1Y3
>> w9OueU5DNjr1M7OPVqN3
>> =KiGF
>> -----END PGP SIGNATURE-----
>> 
>> ---------------------------------------------------------------------
>> 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: Reuse work temp directories

Posted by David kerber <dc...@verizon.net>.
On 5/28/2013 12:22 PM, Christopher Schultz wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> Vicky,
>
> On 5/28/13 2:30 AM, vicky007aggarwal@yahoo.co.in wrote:
>> Is there is a way by which we can create work&  temp directories
>> on run time so that we can avoid creating multiple tomcat
>> instances having there individual work&  temp directories.
>
> Can you ask that question in a different way, or explain in a little
> more detail? It's unclear to me what you are trying to achieve.

It looks to me like she wants to have single work and temp directories, 
to be used by all tomcat instances.  Though I'm not sure what the "on 
run time" is referring to.


>
> - -chris
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG/MacGPG2 v2.0.17 (Darwin)
> Comment: GPGTools - http://gpgtools.org
> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>
> iQIcBAEBCAAGBQJRpNmsAAoJEBzwKT+lPKRYiWMP/RhsnJmEebmJVXcL1cK5YxZX
> FfOHQ5w/EkqK41v0V2b12VPF5+DExybRudvmFOn5Z3qP/Fy5KN3zwmjSikxVuDl8
> WRagBOy0fxeUFX7xfKU5Isatpjjg+87gomwDJcG5QGpbQEtBEeHckyknceDCnA8L
> KO+EdiEpAMxiU/KmGlsYP64niAU0JZewGiHujsM/K95R8GroNy8N59hSO1CVuu6d
> +9EOJ/0D/xvSqf7fhhxZq2OAFZcpLZR9iJUxXeyTDhPv630LW0tVCh2Q0MwDxufr
> NNmPw+INAB83WnTal6bWSFj7nvgt82E9EshpBtffz7n6JBMAWPy/VJHNGW+z8sik
> /8b3PI2TFtDHyJ0GtuCnoFZ0IJp1sZYR/TZACKgc3GmfS5FZ5Oo3b3rAPnTiAQDx
> Zezk5uV6uI82jR8kNyOIm205UT4HuHPzrxRgLBM81ajI6riMYG/BxEbc87hg+Zm2
> Truaq0xTaT/PGLjcJJKL2F6tOjhMDI0iZvCowNzjkdfIH+QZCSduK5mJTXFJsgyt
> ZGOuNVmu5lJvFociCF6gVS9xo2VebxU2WGnqshKtZJ8ZaawYv/2MGmA7f8YmY0hJ
> m4TmHv10OuoPjh8mDQZOandQt2MdKKHlvk32qs6Tu0C1uBSlBeEypREEU23jb1Y3
> w9OueU5DNjr1M7OPVqN3
> =KiGF
> -----END PGP SIGNATURE-----
>
> ---------------------------------------------------------------------
> 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