Благодаря Томасу Хурке из Oracle я могу ответить на этот вопрос.
Проблема вызвана тайм-аутом между обнаружением jvm и его инициализацией jvmstat (http://java.sun.com/performance/jvmstat/). При включенном ткачестве этот интервал явно увеличивается.
Есть 2 способа это исправить.
1) вы можете явно включить JMX в отслеживаемом приложении на предопределенном порту с помощью
-Dcom.sun.management.jmxremote.port=<portNum>
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
и из VisualVM присоедините к вашему приложению через File-> Add JMX connection
и используйте "localhost:" в качестве строки подключения.
2) Вы можете увеличить время ожидания;
a) В каталоге visualvm / etc (например, visualvm_132 \ etc) отредактируйте параметр defaults_opts в visualvm.conf так, чтобы -J-Dsun.jvmstat.perdata.syncWaitMs = 10000 при необходимости увеличивался (я увеличил его * 10 до 100 секунд)
VisualVM также имеет файл журнала, доступный через Справка-> О программе-> Файл журнала, который показывает любые исключения, которые были выброшены. Здесь я нашел след стека тайм-аута ...
INFO [com.sun.tools.visualvm.jvmstat.JvmstatModelProvider]: Could not get MonitoredVM
sun.jvmstat.monitor.MonitorException: Could not synchronize with target
at sun.jvmstat.perfdata.monitor.v2_0.PerfDataBuffer.synchWithTarget(PerfDataBuffer.java:262)
Еще раз спасибо Томасу. Он должен получить любые очки от этого