-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Jan,

> At the end I'd like to make a little comparision. Recently I've
> used .NET + native calls of dlls, php + custom made php modules
> (native dlls), jsp+java. .NET and php have possibilities for some
> kind of recoveries. It's almost impossible to crash Apache like a
> whole (control + x worker processes).

??

If your PHP script is bad, you'll crash the request processor. If you
are in prefork mode, a new child process is created when the old child
dies unexpectedly. If you are in worker mode, well, you're not because
mod_php doesn't work in worker more IIRC. But, if you were in worker
mode, then you'd bring-down a bunch of PHP scripts all running in
parallel and a whole lot of users would see errors. That's not
terribly user-friendly.

> So .NET and php seems me they're more stable than tomcat because
> they have some possibilites.

So, PHP and .NET are more stable because poorly-written applications
can be mitigated by using server software that tolerates them? That
doesn't make any sense at all.

If you want to say that you'd rather work in .NET or PHP because app
servers are more forgiving, then that's your decision. But don't try
to assert that .NET or PHP is somehow better because of that decision.
It may be better in your situation, but that certainly does not make
them "more stable". I would argue the reverse: if your webapps crash
and cause problems, the webapps are not stable. The platform is almost
irrelevant.

> I haven't studied recovery options in other java app. servers, but 
> I'd really appreciate something in Tomcat.

If you can figure out how to determine whether Tomcat is "down", then
you can easily script a restart. This kind of thing really can't be
done by Tomcat itself because something outside the JVM needs to
orchestrate the server restart. Since there are so many environments
out there, the Tomcat team can't be expected to create auto-restart
scripts for all those possibilities.

I'd be interested to see how .NET does this, since .NET runs in a VM
just like Java, and would have the same potential difficulties.

IIRC, .NET doesn't have a rich server-side specification like the Java
Servlet Spec that ties everything together for webapps. Basically,
it's got IIS's ASP.NET-runner and those ASPs can call-out into "real"
(that is, something NOT written in ASP but in a real language like C#
or whatever) components. Given that thin veneer that Microsoft
provides to its developers, it's not surprising that the server can so
easily be bounced: there is no complicated infrastructure in place
that needs to be torn-down and re-started.

A servlet container is much more complicated and has many more moving
parts than both IIS's .NET webapp stuff and mod_php. It's not
surprising to me in the least that you would have a tougher time
bouncing the service at regular intervals.

If you really want to bounce Tomcat at regular intervals, set up a
cluster and have cron (or task scheduler, etc) bounce Tomcat whenever
you want. Bouncing Tomcat is a non-trivial operation, so it won't be
instantaneous. I would never do rolling restarts of any service
without having a cluster in place that could redirect traffic to an
available server. I would even use mod_jk or something similar to take
individual members out of the cluster and then wait until their
traffic dies down before bouncing them. That way, nobody knows that
your services are undergoing rolling restarts.

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

iEYEARECAAYFAk7Lt1gACgkQ9CaO5/Lv0PA9WQCfXA3h21pZlxuOQDxCppmi2ZxT
P+gAnj0wksaWYvmgR3lCL0Z9fdvYkyWb
=H67P
-----END PGP SIGNATURE-----

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

Reply via email to