Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HotSpot VM命令行HeapDumpPath选项将主机名用于生成的.hprof_Java - Fatal编程技术网

Java HotSpot VM命令行HeapDumpPath选项将主机名用于生成的.hprof

Java HotSpot VM命令行HeapDumpPath选项将主机名用于生成的.hprof,java,Java,摘要:我想改变方式。HPROF是在自动创建时命名的,以合并机器的主机名+进程PID 长版本:根据文档(),您可以向VM传递一个选项,以便在特定条件下创建heapdump(heapdumponautofmemoryerror),并可以通过为生成的.hprof文件指定不同的路径来进一步自定义此行为。您可以更改名称/路径。我想知道的是,是否有可能使此选项(HeapDumpPath)包含主机名+PID以具有唯一命名的.hprofs(保存在集中位置,但这是另一个作用域)。能做到吗?HeapDumpPath

摘要:我想改变方式。HPROF是在自动创建时命名的,以合并机器的主机名+进程PID


长版本:根据文档(),您可以向VM传递一个选项,以便在特定条件下创建heapdump(
heapdumponautofmemoryerror
),并可以通过为生成的.hprof文件指定不同的路径来进一步自定义此行为。您可以更改名称/路径。我想知道的是,是否有可能使此选项(
HeapDumpPath
)包含主机名+PID以具有唯一命名的.hprofs(保存在集中位置,但这是另一个作用域)。能做到吗?
HeapDumpPath
可以接受一个参数来获取主机名吗?

看起来没有向路径中注入值的选项。根据shell的不同,您至少应该能够插入主机名。PID可能不可能,因为它是在流程启动后创建的。不过,您可以使用不同的变量,如应用程序名称。在bash中,它看起来像这样:

java -XX:+HeapDumpOnOutOfMemoryError -mn256m -mx512m ConsumeHeap -XX:HeapDumpPath=/disk2/dumps/$(hostname)/${APPLICATION_NAME}

只需在特定Java VM的wrapper.conf文件中使用Windows环境变量
COMPUTERNAME
,就可以做到这一点。全文如下:

wrapper.java.additional.32=-XX:HeapDumpPath=./%COMPUTERNAME%.hprof