Created: 20 Jul 2006
Some time ago, I was poor, jobless and determined to never work on SAP systems again. A job was offered to me, which involved deploying a new J2EE application. Now, my only previous experience of J2EE was a brief entanglement with JRun on Windows and I’d managed to expunge that from my memory, so I accepted.
It turns out that it actually requires a reasonable amount of specialist knowledge to manage Java applications which serve high traffic websites. Java is sufficiently complex that it is difficult to troubleshoot applications using traditional OS-based methods. This was a source of constant irritation to me when I began to tackle some of the more serious application problems we encountered. I needed to learn about the internals of the Java Virtual Machine, its garbage collector, profiling Java applications and the vagaries of property file parsing.
None of these things are difficult to understand, but my life would have been much easier had some of the documentation been written with systems administrators in mind. Sys admins are not developers. Most competent sys admins are able to read and understand source code, but there’s a world of difference to being a developer. A sys admin is usually presented with a misbehaving application with little knowledge of its internals and a requirement to diagnose the problem and work around it as quickly as possible.
So, over the next few weeks, I’ll be trying to present much of the information I consider to be vital for all sys admins who administer java applications. It will be unashamedly aimed at UNIX sys admins, but a lot of the information will be applicable to other platforms too.