Question

I have a j2ee application and monitoring it by visualVM.

Lets say that I have a method like this:

public void doStuff(int param) {
    String s = getStringVariable(param);
    StringBuilder sb = new StringBuilder();
    //Do stuff with sb object
}

From the thread tap, I can see that some of my threads stuck in the above method. So I have generated a heap dump file to figure out what is s and sb contains.

But how can I do that? I am using Eclipse Memory Analyzer.

Was it helpful?

Solution

you can get the local variable's from your thread, because if a local variable is a currently a live, then that means the only reference for that variable is its own thread.

So first you need to list your current threads, and you can do that by:

  1. Click on the objects options button from the actions bar [].
  2. Select Java Basics -> Threads Overview and Stacks.

Then to list the object for a specific Thread:

  • Right Click -> List Object -> OutGoing references

Then Search for your local variable with in a tag <Java Local>

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top