Я пытаюсь профилировать Servlet, запущенный в Apache Tomcat (7.0.34), в качестве службы в Windows 7 (64 бит) с использованием JVisualVM (JDK 1.7.0 - 06, 64 бит), выполняемой локально.
Первоначально у меня была проблема с Tomcat, которая не показывалась в списке локальных приложений из-за различной ошибки/функции свойства java.io.tmp, но работала вокруг нее, как указано в нескольких сообщениях на этом форуме.
Однако, хотя процесс Tomcat теперь отображается в списке локальных приложений как "Локальное приложение", при открытии процесса нет вкладок для Monitor, Threads, Sampler или Profile - только вкладка "Обзор", для которой аргументы JVM и Вложенные вкладки Sytem Properties показывают опасное сообщение "не поддерживается для этого jvm".
Я дважды проверил следующие элементы:
- что как Tomcat, так и JVisualVM работают с одной и той же версией Java, просматривая свойства JVM в JVisualVM (используя JMX-соединение для Tomcat)
- что и Tomcat, и JVisualVM имеют один и тот же путь "java.io.tmp", просматривая системные свойства в JVisualVM (снова используя соединение JMX для Tomcat) И глядя на фактический каталог TMP/TEMP и подтверждающий, что PID файлы для обоих существуют
- что файловая система NTFS
- что пользователь Windows не имеет символа подчеркивания в имени (Примечание: у пользователя есть период в имени, поскольку мы используем сетевые логины формы "firstname.lastname", однако у меня нет проблем с просмотром другой Java приложений в JVisualVM, поэтому не думайте, что это проблема).
- что Tomcat и JVisualVM выполняются как один и тот же пользователь Windows, просматривая процессы в диспетчере задач
Несколько заключительных пунктов:
- Мне нужно Профиль сервлет, поэтому использование JMX недостаточно.
- Мне удалось просмотреть профиль на компьютере под управлением Windows XP (Java 7, Tomcat 7 в качестве сервиса), так что это будет выглядеть как Windows 7/64 бит?
Если кто-то и решил эту проблему, очевидно, решение было бы очень оценено. Однако было бы полезно узнать, работают ли другие люди с одинаковой конфигурацией - 64-разрядная версия Windows 7, бит Java 7 64, Tomcat 7 работает как служба - успешно.
Обновление: Вместо того, чтобы работать как служба, я запускал Tomcat с использованием командного файла, и все работало отлично: что это за запуск в качестве службы?