ddusnoki / jvmtop

Automatically exported from code.google.com/p/jvmtop
0 stars 0 forks source link

jvmtop does not work on IBM's jdk #16

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
My JDK's info:/opt/IBM/WebSphere/AppServer/java

I was running the jvmtop.sh and what i got like this:

java.io.IOException: ATTACH_ERR AgentInitializationException102
    at com.jvmtop.openjdk.tools.LocalVirtualMachine.loadManagementAgent(LocalVirtualMachine.java:378)
    at com.jvmtop.openjdk.tools.LocalVirtualMachine.startManagementAgent(LocalVirtualMachine.java:137)
    at com.jvmtop.openjdk.tools.ProxyClient.tryConnect(ProxyClient.java:367)
    at com.jvmtop.openjdk.tools.ProxyClient.connect(ProxyClient.java:349)
    at com.jvmtop.VMInfo.attachToVM(VMInfo.java:187)
    at com.jvmtop.VMInfo.processNewVM(VMInfo.java:146)
    at com.jvmtop.VMOverviewView.scanForNewVMs(VMOverviewView.java:132)
    at com.jvmtop.VMOverviewView.printView(VMOverviewView.java:25)
    at com.jvmtop.JvmTop.run(JvmTop.java:70)
    at com.jvmtop.JvmTop.main(JvmTop.java:41)
Caused by: com.sun.tools.attach.AgentInitializationException: ATTACH_ERR 
AgentInitializationException102
    at ibm.tools.attach.J9VirtualMachine.loadAgent(J9VirtualMachine.java:66)
    at com.jvmtop.openjdk.tools.LocalVirtualMachine.loadManagementAgent(LocalVirtualMachine.java:368)
    ... 9 more

What's going on,i have no idea about it.

Original issue reported on code.google.com by ouyang1...@gmail.com on 28 May 2013 at 6:14

GoogleCodeExporter commented 9 years ago
Can you execute the following two commands and post their output?

echo $JAVA_HOME
java -version

Original comment by patric.r...@gmail.com on 28 May 2013 at 2:43

GoogleCodeExporter commented 9 years ago

Original comment by patric.r...@gmail.com on 11 Jun 2013 at 6:46

GoogleCodeExporter commented 9 years ago
@all : Please retest if jvmtop 0.8.0 is fixing the attaching issues.

Please let us know if the issues are fixed - or post what is not yet working.

Original comment by patric.r...@gmail.com on 14 Aug 2013 at 2:46

GoogleCodeExporter commented 9 years ago
Got the same error on AIX system.
After some time jvmtop produced this output:
JvmTop 0.8.0 alpha - 04:16:44,  ppc64,  2 cpus,         AIX 6.1, load avg 2.79
 http://code.google.com/p/jvmtop

  PID MAIN-CLASS      HPCUR HPMAX NHCUR NHMAX    CPU     GC    VM USERNAME   #T DL
7798880 p.WSPreLauncher [ERROR: Could not attach to VM] 
3801282 m.jvmtop.JvmTop [ERROR: Could not attach to VM] 
23331046 p.WSPreLauncher [ERROR: Could not attach to VM] 
7930024 nalysisLauncher [ERROR: Connection refused/access denied] 
23199802 p.WSPreLauncher [ERROR: Could not attach to VM] 
21692650 nalysisLauncher [ERROR: Connection refused/access denied] 
12779578 p.WSPreLauncher [ERROR: Could not attach to VM] 

java -version output is:
java version "1.6.0"
Java(TM) SE Runtime Environment (build pap6460sr9fp1-20110208_03(SR9 FP1))
IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 AIX ppc64-64 
jvmap6460sr9-20110203_74623 (JIT enabled, AOT enabled)
J9VM - 20110203_074623
JIT  - r9_20101028_17488ifx3
GC   - 20101027_AA)
JCL  - 20110203_01

Original comment by azar...@gmail.com on 5 Sep 2013 at 11:24

GoogleCodeExporter commented 9 years ago
1. Which JVMs (vendor and version number) are running in the to-be-monitored 
jvms?
2. Can you attach to these processes using jconsole/jstack?

Original comment by patric.r...@gmail.com on 5 Sep 2013 at 12:45

GoogleCodeExporter commented 9 years ago
Sorry, I've used wrong JAVA_HOME last time.
JDK being used is the JDK bundled with IBM WebSphere App Server.

Its java -version output is:
bash-3.00$ /usr/IBM/WebSphere/AppServer/java/bin/java -version
java version "1.6.0"
Java(TM) SE Runtime Environment (build pap6460_26sr1fp1-20120309_01(SR1 FP1))
IBM J9 VM (build 2.6, JRE 1.6.0 AIX ppc64-64 20120308_104898 (JIT enabled, AOT 
enabled)
J9VM - R26_Java626_SR1_FP1_20120308_1511_B104898
JIT  - r11_20111028_21230ifx5
GC   - R26_Java626_SR1_FP1_20120308_1511_B104898
J9CL - 20120308_104898)
JCL  - 20120214_01

I've wrote simple java program and started it as follows:
/usr/IBM/WebSphere/AppServer/java/bin/java \
-Dcom.sun.management.jmxremote=true \
-Dcom.sun.management.jmxremote.port=9010 \
-Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=$SERVER_IP test.Test

After that, I'm able to connect to this process via jconsole from remote 
machine.
When this program is running, jvmtop output is:
JvmTop 0.8.0 alpha - 23:50:06,  ppc64,  2 cpus,         AIX 6.1, load avg 3.43
 http://code.google.com/p/jvmtop

  PID MAIN-CLASS      HPCUR HPMAX NHCUR NHMAX    CPU     GC    VM USERNAME   #T DL
3801174 m.jvmtop.JvmTop    6m  512m   15m   n/a  7.47%  3.31% I1203 webadmin   
23   
24051884 test.Test          3m  512m   14m   n/a  0.88%  0.00% I1203 webadmin   
18   
18284738 p.WSPreLauncher  737m 1792m  209m   n/a  0.45%  0.00% I1203 webadmin  
183   
12648486 p.WSPreLauncher [ERROR: Could not attach to VM] 
21168298 p.WSPreLauncher [ERROR: Could not attach to VM] 
13500542 p.WSPreLauncher [ERROR: Could not attach to VM] 

Exception described above still persists, though.
The processes that cannot be attached to is, I think, running WebSphere 
instances. Should I specify the same -Dcom.sun.management.jmxremote.... 
parameters to this instances to see its data too?

Original comment by azar...@gmail.com on 12 Sep 2013 at 6:53

GoogleCodeExporter commented 9 years ago
1. Do these processes which jvmtop cannot attach to (PIDs 12648486, 21168298, 
13500542) run under the same user as jvmtop is running?

2. Can you connect to these processes with a local(!) jconsole?

3. If you have root access: Does the situation change if you run jvmtop as root?

4. Do you really get an exception or just the "Could not attach to VM"? If you 
get an exception with jvmtop 0.8.0, please post it here.

Original comment by patric.r...@gmail.com on 12 Sep 2013 at 1:28

GoogleCodeExporter commented 9 years ago
Thanks for quick response!

> 1. Do these processes which jvmtop cannot attach to (PIDs 12648486, 21168298, 
13500542) run under the same user as jvmtop is running?

Yes, it is webadmin user

> 2. Can you connect to these processes with a local(!) jconsole?

This AIX server does not have an X Server. But I tried to use my local X Server 
via ssh:
ssh -c arcfour,blowfish-cbc -XC

These processes (PIDs 12648486, 21168298, 13500542) cannot be connected via 
jconsole.  But jconsole process itself can be attached. And my test program can 
be attached too.

> 3. If you have root access: Does the situation change if you run jvmtop as 
root?

Unfortunately, it is a corporate server, so I don't have root access to it.

> 4. Do you really get an exception or just the "Could not attach to VM"? If 
you get an exception with jvmtop 0.8.0, please post it here.

Yes, I really get the following exception on the console before the jvmtop data 
table (PID MAIN-CLASS      HPCUR HPMAX ...) is displayed:

ava.io.IOException: ATTACH_ERR AgentInitializationException102
        at com.jvmtop.openjdk.tools.LocalVirtualMachine.loadManagementAgent(Unknown Source)
        at com.jvmtop.openjdk.tools.LocalVirtualMachine.startManagementAgent(Unknown Source)
        at com.jvmtop.openjdk.tools.ProxyClient.tryConnect(Unknown Source)
        at com.jvmtop.openjdk.tools.ProxyClient.connect(Unknown Source)
        at com.jvmtop.monitor.VMInfo.attachToVM(Unknown Source)
        at com.jvmtop.monitor.VMInfo.processNewVM(Unknown Source)
        at com.jvmtop.view.VMOverviewView.scanForNewVMs(Unknown Source)
        at com.jvmtop.view.VMOverviewView.printView(Unknown Source)
        at com.jvmtop.JvmTop.run(Unknown Source)
        at com.jvmtop.JvmTop.main(Unknown Source)
Caused by: com.sun.tools.attach.AgentInitializationException: ATTACH_ERR 
AgentInitializationException102
        at ibm.tools.attach.J9VirtualMachine.loadAgent(J9VirtualMachine.java:66)
        ... 10 more

Original comment by azar...@gmail.com on 13 Sep 2013 at 6:21

GoogleCodeExporter commented 9 years ago
I'm still having problems reproducing this problem. On my machines, jvmtop is 
working perfectly with IBM Websphere instances. I tested against websphere 
7/8.5/8.5.5.
I'd be thankful about any hints to reproduce this issue.

Another thing which might help us here:
1. Start the websphere jvm process with the jvm option:     
-Dcom.ibm.tools.attach.logging=yes
(use ps -aef to confirm)
2. before starting jvmtop with the same user, do:
export JAVA_OPTS="-Dcom.ibm.tools.attach.logging=yes"
3. Start jvmtop in this session

In the home of the user there should be two log files, named <pid>.log (one for 
the websphere process, one for jvmtop).
Please attach both files here.

Thanks,
-Patric

Original comment by patric.r...@gmail.com on 24 Feb 2014 at 10:25

GoogleCodeExporter commented 9 years ago
Hello! Currently I'm busy at work, I'll try to take a look at this issue again 
when I finish my current activities.

Original comment by azar...@gmail.com on 25 Feb 2014 at 8:00

GoogleCodeExporter commented 9 years ago
Issue 46 has been merged into this issue.

Original comment by patric.r...@gmail.com on 19 Aug 2014 at 8:07

GoogleCodeExporter commented 9 years ago
I reproduced the issue connecting to a WAS process.  Jvmtop can connect to 
other processes run by the same JRE but not WAS.  Jconsole cannot connect to 
WAS either.

jvmtop output:
 JvmTop 0.8.0 alpha - 15:37:44,    x86,  4 cpus, Windows 7 6.1 b
 http://code.google.com/p/jvmtop

  PID MAIN-CLASS      HPCUR HPMAX NHCUR NHMAX    CPU     GC    VM USERNAME   #T DL
 9680 m.jvmtop.JvmTop    6m 1638m    7m   n/a  4.76%  0.00% I1312    admin   20
  884 x_v20081125.jar  510m 1024m  174m   n/a  1.43%  0.00% I1103    admin   77
 7816 sql.client.Main  141m  256m   33m   n/a  0.35%  0.00% I1312    admin   29
 8380 p.WSPreLauncher [ERROR: Could not attach to VM]

I set "-Dcom.ibm.tools.attach.logging=yes" on the WAS JVM and set 
JAVA_OPTS="-Dcom.ibm.tools.attach.logging=yes" in the jvmtop environment.  It 
didn't seem to make a difference in the behaviour.  

I'm running JVM in an Administrator CMD window, as the same user running the 
WAS JVM process.

z:\D\tools\jvmtop>echo %JAVA_HOME%
C:\IBM\SDP\runtimes\base_v7\java

z:\D\tools\jvmtop>C:\IBM\SDP\runtimes\base_v7\java\jre\bin\java -version
java version "1.6.0"
Java(TM) SE Runtime Environment (build 
pwi3260sr15ifix-20131203_01(SR15+IX90131+IX90132+IV52621))
IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 Windows 7 x86-32 
jvmwi3260sr15-20131016_170922 (JIT enabled, AOT enabled)
J9VM - 20131016_170922
JIT  - r9_20130920_46510ifx2
GC   - GA24_Java6_SR15_20131016_1337_B170922)
JCL  - 20131015_01

I can't find any log files named like <PID>.log anywhere in the user home dir 
(C:\Users\admin).

I don't know, but wonder if only SSL connections are accepted.  I notice a 
thread about jconsole and WAS 
(http://stackoverflow.com/questions/4370113/connecting-websphere-7-using-jconsol
e) and it appears that configuring SSL is the solution.  I haven't yet been 
able to verify it with jconsole and don't know if jvmtop could connect via SSL.

Original comment by dmacbrid...@gmail.com on 4 Nov 2014 at 9:00