我正在使用以下命令运行服务器:
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000 -server -jar -Dlog4j.configurationFile=properties/log4j2.xml myApp.jar
服务器在 AWS 云(EC2 小实例)上运行,并且端口 8000 是开放的,因此调试器(在我的例子中是 IntelliJ)可以通过 JDWP 协议连接到远程 JVM。
问题是有时服务器会意外关闭并显示以下消息:
JDWP exit error JVMTI_ERROR_OUT_OF_MEMORY(110): Can't allocate jvmti memory [:1797]
FATAL ERROR in native method: JDWP Can't allocate jvmti memory, jvmtiError=JVMTI_ERROR_OUT_OF_MEMORY(110)
Aborted (core dumped)
似乎“内存不足”错误与 JDWP 相关,而不是代码。
我见过JVMTI_ERROR_OUT_OF_MEMORY
几次,但从未java.lang.OutOfMemoryError
从应用程序本身看到过。
如何解决此 jdwp 错误?禁用 jdwp 调试器是唯一的方法吗?