In jdk6_u16 and before running jps would list tomcat running under jsvc (java service runner from apache commons), but as a recent update to jdk6_u23, the tomcat process running under jsvc is no longer reported by jps. Is this a bug, intentional, or is there a switch to jps that would make it report the process?
If it is a bug, how does one report a bug. I used to know on the old Sun site, but not sure not that Oracle is in charge.
I am not sure it matters, but I discovered this after updating my jdk from u16, which I did because visualvm crashes tomcat on Centos5 Linux when CPU profiling is started from within jvisualvm.
After upgrading the JDK to u23, I found visualvm could not find the tomcat process, so I tried running jps, and it could not find it either.
I can work around this by making a JMX connection from visualvm to tomcat, but I used to use jps for other reasons as well, so it would be nice if it could be made to work again.
It turns out this problem has nothing to do with JSVC.
jps find tomcat running with or without JSVC unde jdk1.6_u22, and does not find it in either case with jdk1.6_u23.
Seems to be a bug in jps in 1.6_u23.
While it's true that 6u23/24 introduce this issue, it's not a bug in jps. Rather a change in behavior of the VM itself. On GNU/Linux Jps and the likes seem to only look at /tmp but not necessarily your CATALINA_TMPDIR. If set or not, try to export CATALINA_TMPDIR=/tmp which translates to "-Djava.io.tmpdir=/tmp" and after restarting the Tomcat process you should see Tomcat's data as "/tmp/hsperfdata_<username>/<pid>" and Jps will most likely work again as well.