Why isn't VisualVM showing all the normal tabs? - java

Usually I see all these tabs in VisualVM for locally running Java programs:
However, I have one local program which is currently only showing me Overview and Monitor (even though it usually shows all those shown above):
Also interesting is that VisualVM itself doesn't present the Profile tab:
All three of the programs shown are running with the same JVM with the same Java Home.
What controls which tabs are shown for a particular program? How can I get them all back for my program showing just Overview and Monitor?
I have Visual VM 1.3.5 (latest at this date) and JDK 1.7.0_17.

I found that this was the issue of usage of wrong JDK version. In my case my application was running on 64bit JDK and I started VisualVM from 32bit JDK.
After starting VisualVM from the same JDK on which my application is running, everything was fine. Hope it will help you.

You might need to enable jmx ports on your app. Try adding these switches to your VM and see if the tabs appear again:
-Dcom.sun.management.jmxremote.port=6789 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false

I've just removed ~/.visualvm and reran, See https://java.net/jira/browse/VISUALVM-598

As most of the people mentioned,
The issue was due to the version mismatch of virtualvm and your application.
additionally,
visualvm is bundled in oracle which supports jdk up to 9.
If you are using >9, please make sure you go for another profiler.

What worked for me was specifying the "Start profiling from" classes. If I left this blank, I didn't get the profiler tab. When I specified it, I did. I should probably note that this was a web application running under Tomcat, so I specified org.apache.catalina.startup.** as the starting class.

Check that proxy is disabled if you are running VisualVM for local application

I had a similar problem with missing profiler tab in VisualVM. I'm using Oracle JDK 1.8 and want to profile web application running on Tomcat 8 (JPA, Spring, Hibernate, Vaadin, etc).
I tried all above-mentioned solutions and many others found on the internet, but unfortunately, none of them solved missing profiler tab issue.
So I switched to Java Mission Control profiling tool (JMC + Flight Recorder) which is a part of standard Oracle JDK (from JDK 1.7 update 40) and it works great.

In my case, the issue was the usage of wrong JDK version. My App was running on jdk1.7.0_80, VisualVm running with jdk1.8.0_162.
Replacing the APP JDK version from 1.7.0_79 to 1.7.0_80 fixes the problem.

Related

Server App Engine Standard at localhost failed to start

From eclipse, I created a Google App Engine Standard project and tried to Run it on local App Engine. It is not starting and throwing the below errors -
java.lang.NullPointerException
at java.base/java.util.concurrent.ConcurrentHashMap.putVal(ConcurrentHashMap.java:1011)
at java.base/java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:1006)
at java.base/java.util.Properties.put(Properties.java:1316)
at java.base/java.util.Collections$CheckedMap.put(Collections.java:3636)
at com.google.appengine.tools.development.SharedMain.setTimeZone(SharedMain.java:219)
at com.google.appengine.tools.development.SharedMain.postServerActions(SharedMain.java:188)
at com.google.appengine.tools.development.DevAppServerMain$StartAction.apply(DevAppServerMain.java:398)
at com.google.appengine.tools.util.Parser$ParseResult.applyArgs(Parser.java:45)
at com.google.appengine.tools.development.DevAppServerMain.run(DevAppServerMain.java:257)
at com.google.appengine.tools.development.DevAppServerMain.main(DevAppServerMain.java:248)
Also note that I haven't made any changes to the project. It's the default that gets created.
This is likely an issue with your jdk version. What does javac -version report back? I run into the same stack trace with version 12. Switching to 1.8 works.
On MacOS, this answer helps: How to set or change the default Java (JDK) version on OS X?
Other platforms should have similar ways to switch versions.
This looks to be a JDK12 issue - it seems JDK12 is restricting the system properties exposed to programs, I've run into a similar issue with the OS version before.
I've reported it to Google, you can star it so they feel the weight of the matter: https://issuetracker.google.com/issues/140787205

Java VisualVM missing features

I have a Java application, and I'd like to monitor it using Java VisualVM (jvisualvm).
However, in the VisualVM window very little data can be seen. Also, I can't take a heap dump.
Here is a screenshot of what it looks like, with another test app I wrote:
I can monitor memory usage, classes loaded and threads. Heap dumps, performing GC as well as sampling is disabled.
I have tried adding -Dcom.sun.management.jxmremote to VM arguments, as described here. This is showing up in the Installation Details window. However, it does not appear in the Java process arguments. (should it?)
I also tried to click the button in my test app until an OutOfMemoryError occurred. No heap dump; that is not weird as Heap Dump on OOME is disabled.
What could I do to solve this?
I had this problem because I was running JVisualVM from a different JRE/JDK installation than the target process. It seems that the two must be coming from the same place or it grays out the Heap Dump button.
It seems there was a problem with different Java versions.
A long story short: If JDK is outdated re-install it, and delete Java executables from C:\Windows\System32 and C:\Windows\SysWOW64.
Firstly, I want to tell you that I have multiple versions of Java on my computer. My JDK is 32-bit because of some drivers not running with 64-bit Java. Also, I have both 32-bit and 64-bit JRE installed, the latter for better performance for Java games.
My JDK was version 7, update 40. The VisualVM was so also that version. However, my JRE with auto updates was version 7, update 45.
java -version told me it was version 45 (which it was), so I didn't think the problem was there.
Then, I checked the versions via Control Panel. I now knew my JDK was outdated, so I uninstalled it and redownloaded it.
Uninstalling removed Java from the system path, so jvisualvm wouldn't run. I added it to the path. Now both the app and VisualVM ran normally, but still the problem persisted.
The final problem was that the system was using the java.exe from C:\Windows\System32 instead of the JDK one. By the date it seemed to be the latest one, but maybe it was that the JRE was installed in a different location that the VisualVM (= the JDK).
Finally, I just deleted the Java executables in both C:\Windows\System32 and C:\Windows\SysWOW64.

Netbeans Startup option 'sun.java2d.opengl=true' not recognised

I'm trying to tweak the performance of Netbeans on a rather old PC I am using. I've followed some of the suggestions here but the one regarding
sun.java2d.opengl=true
fails, giving
Unknown option -Dsun.java2d.opengl=true
I'm using Linux WattOS distro version 5, Java 1.7 and Netbeans 7.1.2. Has this option become obsolete now as the above page seems to refer to Java 5?
Are there additional steps I need to do to enable Netbeans to use openGL?
** Additional Info **
I realised that I should have used the option as
-J-Dsun.java2d.opengl=true
Although now I get a crash when I try starting Netbeans now. I've submitted a crash report so I'll wait and see what happens and post the result here.
Check with
java -version
what version of java you're using. This extension is only supported in the Sun JVM, and quite a few distros come with OpenJDK by default.

jProfiler The JVM could not be started

I am newbie to jProfiler. I was install the jprofiler_windows_5_1_4_with_jre.exe on my windows system. After installation I was try to run the jProfiler on my system it was showing the error message like
The JVM could not be started. The main method may have thrown an exception
I was installed IBM Java1.5 on my local windows system. JAVA_HOME is configured and Java was properly installed.
Anyone plz Guide me how to install JProfiler on windows system. Need to add any environment variables on my local system to run the JProfiler or not?
Thanks,
Jon
Do not use JProfiler 5 for anything. It is a very old version. JProfiler 7.1 (the current version can profile Java 1.4 or higher.
Use latest JProfiler version, available here
Please see the installation instructions here.
Hope this helps.
That is because of problem about memory chunk(See below reference for details). If the program has new version, use newer but sometimes programs dont have new version and you have to use it essentially. If any program(not just JProfiler) gives that problem, do below steps:
Search for .vmoptions under the program folder.
Open it with text editor.
Decrease -Xmx size(try decreasing order, for ex: 512m,256m,128m,64m) until finding right size. For each size try to start the program.
Solution from Jetbrains

Known Tomcat 6.0 and JDK 1.7.0_02 issues?

Are there known Tomcat 6.0 and JDK 1.7.0_02 issues?
I know this is a hard question to answer, if the answer is no. But I need to ask just in case the answer is yes. Also I will accept any solutions to the issues below as answers. Please just share whatever issues you have had, and I will update this question if need be.
Issues:
Some issues I have run into since upgrading from JDK 1.7.0 to 1.7.0_02 (which I did to avoid the Eclipse's help menus from crashing, due to a Java 1.7.0 bug.):
Tomcat server takes much longer to start, I need a 120 second timeout to handle it.
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197) error, which disappeared the next day and then reappeared the third day, with no changes other than reloading Eclipse.
Tomcat server takes much longer to shut down. I need a 60 second timeout to handle it, from 15 second default.
Eclipse itself appears to crawl to a halt (figuratively speaking) upon building the workspace and validating the project at hand. Everything within Eclipse appears to take longer, even opening an unopened file.
Everything seems suspicious.
P.S. JDK 1.7.0_02 is also known as 1.7.0u2, Java SE 7u2, Java SE 7 Update 2, etc.
Versions:
JDK = Oracle, 64-bit, downloaded from http://www.oracle.com/technetwork/java/javase/downloads/index.html. Exact file downloaded and installed was jdk-7u2-windows-x64.exe.
Tomcat = Tomcat 6.0.33, downloaded separately from Eclipse
Eclipse = Eclipse Java EE IDE for Web Developers., Version: Indigo Release, Eclipse Platform, Version: 3.7.0.v20110530-9gF7UHNFFt4cwE-pkZDJ7oz-mj4OSEIlu9SEv0f, Build id: I20110613-1736.
64-bit Windows 7 machine, 8GB RAM, Intel Core i7-2600 CPU # 3.4GHz (4 cores)
Eclipse, Tomcat, Apache HTTP Server, are all on the same (development) computer.
EDIT: Added system specs above.
When running 64 bits Java with default options (references compaction is off by default), it requires almost twice the amount of memory than with 32 bits.
For Eclipse, open the eclipse.ini file and double/increase a lot the -Xmx option.
Of course, your physical memory may not be enough when running some JVMs.
So I recommend you to test the -XX:+UseCompressedOops HotSpot option with 64 bits JVM and monitor memory usage thanks to jconsole for instance. You can also read details about that recent option. That option
For Tomcat, create the file bin/setenv.bat with content:
set JAVA_OPTS="-Xmx1024M -XX:+UseCompressedOops"
Well, perhaps it's all about the new JVM released in that update. It alledgedly improves performance but... well, who knows. JDT on Tomcat6 interacts with JDK 1.7 so unexpected things could happen.
Other than that, there're few things to check.

Categories