As promised, here are my notes on getting a serious JBoss-Tomcat
deployment functional on Windows 2000 Server, assuming you aren't
in a position to use a real operating system.
So I've finally managed to get JBoss-Tomcat working on a dual-Xeon 4GB
Windows 2000 server.
The problems were:
1) Use of the /3GB boot.ini switch radically reduces the number of PTEs
available. This results in a very low limit on concurrent threads.
If you don't need >2GB virtual address space per process,
don't enable /3GB. If you can't live without it, see
information on tuning SystemPages to increase available PTEs.
2) The default Windows 2000 TCP connection backlog is ridiculously
low (20). This is a problem for when the server is configured to
ramp the number of connection handlers up as load increases. See
information on enabling dynamic backlog handling.
3) The default Windows 2000 local user socket limit is ridiculously
low (5000). This is a problem when the server accesses resources
(such as databases and application containers) over the network. See
information on increasing this limit to the defaults found on most
sensible server platforms.
4) [SPECULATION] Windows 2000 imposes an immutable limit on the number
of open files / handles allowed for a process started from a CMD.EXE
prompt. See http://wrapper.tanukisoftware.org/doc/english/ for
information on installing JBoss-Tomcat as an NT service using the
Java Service Wapper.
5) [SPECULATION] Windows 2000 imposes a 48MB heap limit for processes
started via the desktop (22MB for Terminal Services desktops). The
solution for (4) above applies.
I don't have KB article references to support (4) and (5). I read stuff
that led me to believe them, but didn't record references. However,
running Jboss-Tomcat as an NT service avoided undiagnosed resource
starvation problems not covered in (1) through (3).
With these changes made, a Windows 2000 server can be made to service
a serious JBoss-Tomcat deployment configured to operate under the kind
of load that Unix-like operating systems tend to handle out of the box.
The host is able to service at least 2,000 concurrent HTTP connections
without application server failure.
This does _not_ mean that a Windows 2000 server's _performance_ will
match that of a Unix-like operating system. At this stage, I'm just
trying to get this rubbish to stay on its feet when I poke it with a
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
JBoss-user mailing list