Read what we are talking about
for the Low Level Administrator
By remotely monitoring a running MemberzPlus™, we can find out all kinds of things about the application such as detect memory leaks, identify resource intensive processes, etc. Real-time monitoring of a running Java Virtual Machine (JVM) was not recommended in the past because it was just too instrusive and could occasionally cause the JVM to crash. That is no longer the case. Now there is no reason not to set up the production environment so it can be monitored. That way, if an issue does arise, it's easy enough to fire up a tool like VisualVM to take a look and see what's going on.
The only setup in JBoss is to define the responding port and the security for accessing that port. Basically, the monitoring tools connect to the running JBoss through a TCP port configured at startup. You can also limit that connection to SSL/TLS and/or a username/password authentication. The raw system properties involved are:
Set the JVM listening port which must be unique per IP address. Typically, you can reference an environment variable in the run script and then set it in the FireDaemon configuration.
Set to "true" or "false." If "true," the other SSL-related settings are required.
Set to "true" or "false." If "true," then the username and password settings are required. Ross Group highly recommends requiring both SSL and authentication for any production environment. For more information, see http://download.oracle.com/javase/6/docs
In the event that you can't get DNS resolution to the remote server you are monitoring, you MUST set this on the server so that it refers to itself by IP instead of by hostname. This does have the potential to cause issues with other third party apps; however, we haven't yet had an issue in a MemberzPlus™ environment.
Run "jstatd" (located in the Java /bin directory) on the server. It serves as a bridge between VisualVM (or other tools) and the JVM. First, you need to create security policy file, for instance "tools.policy", for jstatd's JVM containing:
Then, you can jstatd:
The policy file tells the running jstatd JVM to allow external programs to connect to it for monitoring.
Then, you can jstatd:
VP of Software Development
Mr. Moor joined the team in 1996 as an experienced developer in Oracle, PL/SQL, and PowerBuilder. He has been a team lead and project manager of many high visibility projects including lead on the roll-out of our membership management software MemberzPlus to a membership organization over five million members. Mr. Moor is an Air Force Veteran with 8 years of service and served on the board of the Turner Syndrome Society. Mr. Moor has over 25 years experience in software development in a variety of technical disciplines including Oracle and Java.