Comments (5)
What kind of application are you monitoring using the VisualVM? I assume it's a remote application using JMX connection - please confirm.
Currently when a JMX-connected application terminates, its window has to be closed in VisualVM and the connection node removed & added again or VisualVM has to be restarted in order to connect to the new application. Otherwise you still see data for the old (terminated) process - connection name and pid at the top of the view is gray.
This is a know annoyance and we're going to address it in some of the future VisualVM releases.
from visualvm.
Correct, I confirm.
The problem is that VisualVM connects to all defined Java processes and retrieves the parameters without explicitly opening the JVMs - this is totally misleading! Why you are doing it this way?
from visualvm.
VisualVM opens the connections for several reasons:
- to check whether the process is alive
- to read process ID
- to read additional process information for resolving customized display name
from visualvm.
All clear, but why VisualVM does some actions without explicitly opening VM? For egzample, in Oracle SQL Developer (just a sample), if you configure serveral DBs, no action will be done during the process startup. You have to explicitly connect to a DB to retrieve parameters and start working with the DB.
Whereas VisualVM during it's boottime connects to processes, gathers startup parameters and keeps them until VisualVM closure - without any user action, why?
User (like we are) expect that when we click "Open" we connect to VM and retrieve the current and up2date parameters, instead we got parameters which were collected during VisualVM boot time (can be serveral hours ago) and the data displayed can be not up2date. This can cause major outage - like in our case. Why it is designed like that? What is the benefit of connecting to VMs and collecting data during boot?
from visualvm.
VisualVM is designed this way, it's a different tool for different purposes and use cases. Again, when adding a new JMX connection, VisualVM reads these data:
- tries to connect to the process - to verify whether the connection string is correct and there's no networking problem, otherwise you wouldn't realize you made a typo for example
- process ID - will stay up to date, doesn't change
- startup parameters - will stay up to date, don't change
The other data are being collected only after you open the application in VisualVM and are always up to date as well.
As I've described in the first comment, you've been presented obsolete data for the terminated process because you didn't relaunch VisualVM or re/created the JMX connection after restarting the process, which is a known usability annoyance to be addressed yet.
from visualvm.
Related Issues (20)
- Mouse clicks on Tracer tab on Mac do not always open tracer groups consistently HOT 3
- How to set the language
- [HeapViewer] display logical value of collection classes in java.util.ImmutableCollections HOT 1
- Uptime is negative and counting down HOT 3
- VisualVM getting stuck ( Not responding ) after starting java application in local HOT 11
- You are running VisualVM using Java Runtime Environment (JRE) HOT 6
- VisualVM freezes for several minutes before showing the profiling info HOT 1
- Not able to open large heap dump files HOT 9
- [HeapViewer] slow computation of "Merged GC Roots" HOT 1
- VSCode Extension - add custom cpu profiler filter HOT 2
- How to change language
- VSCode Extension - JDK Path with Spaces not working HOT 2
- Open source code for Lamdas, support! HOT 1
- [HeapViewer] Displaying threads in Threads view is sometimes slow HOT 2
- Add the ability to choose UI Font Size. HOT 9
- VS Code Extension - Usability Issues on macOS HOT 1
- JDBC sampler is gone HOT 1
- Conflict between vscode visualvm extension and run test with coverage HOT 1
- Add the ability to group remote connections in the application tree
- StackOverflowError when starting HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from visualvm.