cancel
Showing results for 
Search instead for 
Did you mean: 

NoClassDefFoundError in SAP JVM Profiler Plugin for NWDS

Former Member
0 Kudos

Hello,

I want to use the SAP JVM Profiler (Java Profiling - SAP Netweaver Application Server Java - SCN Wiki) to find the bottlenecks in our SAP NetWeaver Portal, because after some Month it gets very slow an at the end their is an OutOfMemoryError. Some objects getting to big.

When I install the Profiler-Plugin Version 2.0.17 in Netweaver Developer Studio for SAP NetWeaver 7.3 SP07 PAT0002, I get this Error-Message

java.lang.NoClassDefFoundError: Could not initialize class com.sap.jvm.profiling.ui.widgets.vmexplorer.BoardsController

in the ErrorLog when opening the VM Explorer.

After hours, I'm out of ideas. Why is this widget missing and what can I do?

Thanks.

Accepted Solutions (1)

Accepted Solutions (1)

hemanth2
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi Thomas,

Hope you are doing good.


Are you using the latest SAPJVM version? If not, download the latest one from the SMP, see SAP Note 1442124.
Also you need to have the “Microsoft Visual C++ 2010 Redistributable Package” installed.
Make sure that you go through:

Thank you and have a nice day :).

_____________

Kind Regards,

Hemanth

SAP AGS
 

Answers (2)

Answers (2)

Former Member
0 Kudos

Yes after another bunch of hours I found it: the “Microsoft Visual C++ 2010 Redistributable Package" By now I have installed both architectures (x86 & x64) but I think it is only necessary to install in the architecutre the profiler plugin is. In my case x86.

I think like Matthias said, an update of the SAP JVM is not necessary.


Thanks to all for your help and advices.


Greating,

Thomas

0 Kudos

Hi Thomas,

actually you don't need to update the SAP JVM or install the microsoft redistributable package (in fact the profiler also runs on other Java runtimes). There seems to be a problem with the installed eclipse plugins. There should be a folder named "com.sap.jvm.profiling.ui.widgets_2.0.17" located in the plugins folder of your eclipse installation. Within this folder there should be "profiling_2.0_ui_widgets.jar" containing the missed class.

Btw. have you set -XX:+HeapDumpOnOutOfMemoryError ? If yes, the JVM creates a heap dump when such an error occurs which you can analyze with the Memory Analyzer and inspect potential memory leaks. Alternatively you can trigger a heap dump whenever you want to with the command-line tool jvmmon (command 'dump heap').

The poor performance after some months could to be related the heavy GC activity (probably due to the memory leak or shortage). If your JVM was started with -XX:+GCHistory you also get a log of all GCs that happend (use command 'retrieve complete gc history' in a jvmmon session to get the file). This file can be imported into Profiler 2.0 for graphical GC analysis.

Best regards,

Matthias

Former Member
0 Kudos

Ok,

the class-file is their. I extracted the JAR-File. The Plugin is installed right.

Yes we used the -XX:+HeapDumpOnOutOfMemoryError flag and I get a Heapdump,
but by now I could not find any real suspects. But I don't know by know, what I am looking for.

The GC-History is a good idea. I will give it a try. But I could not Import it to the profiler, cause
this Plugin doesn't function correct in NWDS. I installed the profiler plugin in a separate eclipse installation, which causes no problems, when I executed it on my local machine. When I execute it on the server machine, it throws the same error. Looks like a problem with the installed JRE / JDK. I will do an update and post the results.

Thanks,

Thomas

0 Kudos

Hi Thomas,

you installed the Profiler plugin via archive from SMP, right? Was the Profiler 1.8 plugin installed in your NWDS 7.3 before the update?

Thanks,

Matthias

Former Member
0 Kudos

Yes, I have installed it form SMP. I did not do any update of the NWDS or what did you mean with update?

Former Member
0 Kudos

Can you provide output of command ss from osgi console:

>osgi ss com.sap.jvm

?

Former Member
0 Kudos

I hope I startet it right:

Locale Machine (Plugin is funtional)

PS M:\Software\OS-Tools\SAP JVM Profiler\profiler\plugins> java jar .\org.eclipse.osgi_3.5.2.R35x_v20100126.jar -console

Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true

osgi> ss

Framework is launched.

id      State      Bundle
0      ACTIVE      org.eclipse.osgi_3.5.2.R35x_v20100126

Server Machine (Plugin is not functional)

PS C:\Program Files (x86)\SAP\developer\eclipse\plugins> java -jar .\org.eclipse.osgi_3.5.2.R35x_v20100126.jar -console


osgi> ss com.sap.jvm

Framework is launched.

id      State      Bundle

Could this be the Problem, that the Bundle is not running on the Server?

Former Member
0 Kudos

You can open osgi console from eclipse ide. Just open console view and in right top corner select "Host OSGI Console".

Former Member
0 Kudos

This function is only in Eclipse > 3.8 available. NWDS 7.3 based on Eclipse 3.5. So I have too use eclipse.exe -console. But this only btw.

The ouput is in the file.

When  I use the pure eclipse 3.5 with the profiler plugin, I get the following error:

osgi> Loading of sapjvm_inspector.dll via System.loadLibrary failed because of: X:\Software\OS-Tools\SAP JVM Profiler\profiler\plugins\com.sap.jvm.inspector_2.0.17\natives\com\sap\jvm\inspector\ntintel\sapjvm_inspector.dll: Can't find dependent libraries

which can be the problem. But what libraries are missing?