We are a software shop that writes a lot of Java code. Most of our Java app servers are CentOS boxes hosted at a remote data center.
Whenever we need to get into those machines and sift around we use PuTTY.
I was recently asked to monitor our JVM using the jvisualvm
memory profiler, which is a rich GUI tool that uses lots of graphs and charts with pretty colors. When I asked my tech lead how I could view such a GUI tool over a character-based command tool like PuTTY, he told me to use something called Reflection X instead.
This prompted me to read up on Reflection X and X Windows in general (which I have never had any exposure to).
I now understand that "X" is a hardware abstraction layer so that you can write GUI-oriented code and have it deployed on any hardware that X can run on. In this way it is identical (in theme) to the Java virtual machine.
What I am not understanding is the relationship between my Windows PC, Reflection X, the CentOS machine running the app I have to profile, and the jvisualvm
tool itself: who is doing what?
Does Reflection X run on my machine, or is it installed on the linux server? What is it about Reflection X that will allow me to view jvisualvm
remotely?
Thanks in advance!