Существует ли аргумент jvm, который заставляет jvm создавать файл hprof при запуске jvm

#java #jvm

#java #jvm

Вопрос:

Один из наших тестировщиков продолжает получать небольшой файл hprof, созданный в его среде Windows, когда он запускает наше приложение.

  • Файл hprof отображается только в его экземпляре Windows. Другие тестировщики этого не видят
  • Файл hprof появляется каждый раз, когда он его запускает.
  • Файл hprof очень маленький (45 МБ). В файле hprof нет OutOfMemoryErrors или чего-либо полезного в этом отношении.
  • jvm не завершается
  • Приложение отлично работает при его установке после запуска.

Существует ли какой-либо аргумент jvm, который можно указать при запуске (в данном случае через некоторую переменную среды), который создает файл hprof при запуске? Я знаю, что если вы укажете cpu=samples, он создаст его при выходе.

Я достаточно убежден, что это системный параметр. Но я понятия не имею, какой именно. Мы запускаем Oracle jre 1.6_024, а jvm запускается как часть запуска tomcat 7.

БОЛЕЕ ПОДРОБНАЯ ИНФОРМАЦИЯ ЗДЕСЬ — МОЙ ВЫВОД SET.

 Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

C:UsersAdministrator>SET
ALLUSERSPROFILE=C:ProgramData
APPDATA=C:UsersAdministratorAppDataRoaming
CLASSPATH=.;C:Windowsjavalibjtapi.jar;.;;
CommonProgramFiles=C:Program FilesCommon Files
CommonProgramFiles(x86)=C:Program Files (x86)Common Files
CommonProgramW6432=C:Program FilesCommon Files
COMPUTERNAME=RAJSERVER
ComSpec=C:Windowssystem32cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=UsersAdministrator
JAVA_HOME=C:Program Files (x86)Javajre
LOCALAPPDATA=C:UsersAdministratorAppDataLocal
LOGONSERVER=\RAJSERVER
NUMBER_OF_PROCESSORS=4
OS=Windows_NT
Path=C:Program Files (x86)companyappresources;C:Program Files (x
86)companyappresources;C:Python27;C:Python27Scripts;C:Windows
system32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShell    v1.0;C:Program Files (x86)Javajdk1.6.0_24bin;%APPDATA%Python    Scripts;C:Program Files (x86)Nmap
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.py;.pyw
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 23 Stepping 10, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=170a
ProgramData=C:ProgramData
ProgramFiles=C:Program Files
ProgramFiles(x86)=C:Program Files (x86)
ProgramW6432=C:Program Files
PROMPT=$P$G
PSModulePath=C:Windowssystem32WindowsPowerShellv1.0Modules
PUBLIC=C:UsersPublic
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:Windows
TEMP=C:UsersADMINI~1AppDataLocalTemp1
TMP=C:UsersADMINI~1AppDataLocalTemp1
USERDOMAIN=RAJSERVER
USERNAME=Administrator
USERPROFILE=C:UsersAdministrator
windir=C:Windows
  

Вот дамп моих системных свойств после запуска приложения tomcat.

 prps awt.toolkit = sun.awt.windows.WToolkit
prps catalina.home = C:Program Files (x86)companyapplicationTomcat
prps catalina.useNaming = true
prps com.sun.jndi.ldap.connect.pool.protocol = plain ssl
prps com.sun.jndi.ldap.connect.pool.timeout = 10000
prps file.encoding.pkg = sun.io
prps file.encoding = UTF-8
prps java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment
prps java.awt.printerjob = sun.awt.windows.WPrinterJob
prps java.class.path = C:Program Files (x86)companyapplicationTomcatbinbootstrap.jar;C:Program Files (x86)companyapplicationTomcatbintomcat-juli.jar;C:Program Files (x86)companyapplicationTomcatbintomcat-juli.jar;C:Program Files (x86)companyapplicationJavalibtools.jar;C:Windowsjavalibjtapi.jar;C:Windowsjavalibjtracing.jar
prps java.class.version = 50.0
prps java.endorsed.dirs = C:Program Files (x86)companyapplicationTomcatendorsed
prps java.ext.dirs = C:Program Files (x86)companyapplicationJavajrelibext;C:WindowsSunJavalibext
prps java.home = C:Program Files (x86)companyapplicationJavajre
prps java.io.tmpdir = C:Program Files (x86)companyapplicationTomcattemp
prps java.library.path = C:Program Files (x86)companyapplicationwebappresources
prps java.naming.factory.initial = org.apache.naming.java.javaURLContextFactory
prps java.naming.factory.url.pkgs = org.apache.naming
prps java.runtime.name = Java(TM) SE Runtime Environment
prps java.runtime.version = 1.6.0_27-b07
prps java.specification.name = Java Platform API Specification
prps java.specification.vendor = Sun Microsystems Inc.
prps java.specification.version = 1.6
prps java.vendor.url = http://java.sun.com/
prps java.version = 1.6.0_27
prps java.vm.info = mixed mode
prps java.vm.name = Java HotSpot(TM) Server VM
prps java.vm.specification.name = Java Virtual Machine Specification
prps java.vm.specification.vendor = Sun Microsystems Inc.
prps java.vm.specification.version = 1.0
prps java.vm.vendor = Sun Microsystems Inc.
prps java.vm.version = 20.2-b06
prps line.separator = 
prps log4j.configuration = file:/C:Program Files (x86)companyapplicationwebapp/WEB-INF/logConfiguration.properties
prps os.arch = x86
prps os.name = Windows Server 2008 R2
prps os.version = 6.1
prps package.definition =     sun.,java.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.
prps path.separator = ;
prps RUN_UNDER_ECLIPSE = false
prps shared.loader = 
prps sun.arch.data.model = 32
prps sun.boot.class.path = C:Program Files (x86)companyapplicationJavajrelibresources.jar;C:Program Files (x86)companyapplicationJavajrelibrt.jar;C:Program Files (x86)companyapplicationJavajrelibsunrsasign.jar;C:Program Files (x86)companyapplicationJavajrelibjsse.jar;C:Program Files (x86)companyapplicationJavajrelibjce.jar;C:Program Files (x86)companyapplicationJavajrelibcharsets.jar;C:Program Files (x86)companyapplicationJavajrelibmodu
prps sun.boot.library.path = C:Program Files (x86)companyapplicationJavajrebin
prps sun.jnu.encoding = Cp1252
prps sun.management.compiler = HotSpot Tiered Compilers
prps sun.net.client.defaultConnectTimeout = 15000
prps sun.net.client.defaultReadTimeout = 20000
prps sun.os.patch.level = Service Pack 1
prps tomcat.util.buf.StringCache.byte.enabled = true
prps tomcat.util.scan.DefaultJarScanner.jarsToSkip = bootstrap.jar,commons-daemon.jar,tomcat-juli.jar,annotations-api.jar,el-api.jar,jsp-api.jar,servlet-api.jar,catalina.jar,catalina-ant.jar,catalina-ha.jar,catalina-tribes.jar,jasper.jar,jasper-el.jar,ecj-*.jar,tomcat-api.jar,tomcat-util.jar,tomcat-coyote.jar,tomcat-dbcp.jar,tomcat-i18n-en.jar,tomcat-i18n-es.jar,tomcat-i18n-fr.jar,tomcat-i18n-ja.jar,commons-beanutils*.jar,commons-codec*.jar,commons-collections*.jar,commons-dbcp*.jar,commons-digester*.jar,
prps user.country = US
prps user.dir = C:Windowssystem32
prps user.home = C:
prps user.language = en
prps user.name = RAJSERVER$
prps user.timezone = America/Chicago
prps user.variant = 
syskey CommonProgramFiles = C:Program Files (x86)Common Files
syskey CommonProgramFiles(x86) = C:Program Files (x86)Common Files
syskey CommonProgramW6432 = C:Program FilesCommon Files
syskey COMPUTERNAME = RAJSERVER
syskey ComSpec = C:Windowssystem32cmd.exe
syskey FP_NO_HOST_CHECK = NO
syskey JAVA_HOME = C:Program Files (x86)Javajre
syskey LOCALAPPDATA = C:Windowssystem32configsystemprofileAppDataLocal
syskey NUMBER_OF_PROCESSORS = 4
syskey OS = Windows_NT
syskey Path = C:Program Files (x86)companyapplicationresources;C:Python27;C:Python27Scripts;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:Program Files (x86)Javajdk1.6.0_24bin;
syskey PATHEXT = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.py;.pyw
syskey PROCESSOR_ARCHITECTURE = x86
syskey PROCESSOR_ARCHITEW6432 = AMD64
syskey PROCESSOR_IDENTIFIER = Intel64 Family 6 Model 23 Stepping 10, GenuineIntel
syskey PROCESSOR_LEVEL = 6
syskey PROCESSOR_REVISION = 170a
syskey ProgramData = C:ProgramData
syskey ProgramFiles = C:Program Files (x86)
syskey ProgramFiles(x86) = C:Program Files (x86)
syskey ProgramW6432 = C:Program Files
syskey PSModulePath = C:Windowssystem32WindowsPowerShellv1.0Modules
syskey PUBLIC = C:UsersPublic
syskey SystemDrive = C:
syskey SystemRoot = C:Windows
syskey TEMP = C:WindowsTEMP
syskey TMP = C:WindowsTEMP
syskey USERDOMAIN = WORKGROUP
syskey USERNAME = RAJSERVER$
syskey USERPROFILE = C:Windowssystem32configsystemprofile
syskey windir = C:Windows
  

Комментарии:

1. Как выглядит среда? Позвольте ему открыть cmd, затем введите set и вставьте вывод здесь (если вы его еще не видите).

Ответ №1:

Проверьте переменную среды *JAVA_TOOL_OPTIONS *, она может содержать что-то вроде

 JAVA_TOOL_OPTIONS="-agentlib:hprof"