切忌在生产环境开启使用调试,调试时候最好通知其他人,否则应用会被阻塞。
开发过程中,有些情况需要在测试环境才能复现,需要在远程服务器上调试。这时可以使用JMX远程调试
调试工具为Intellij IDEA.
1.首先修改应用启动项
假如之前jmx_message为:
START_OPTS="$START_OPTS -Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=AAAA
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"
要修改为
START_OPTS="$START_OPTS -Xdebug -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=XXXX
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=AAAA
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"
其中suspend为挂起模式,会阻塞应用执行,address为jmx远程调试端口。
2.配置intellj idea 远程调试
Run->Edit Configurations
修改Remote配置
修改host为应用服务器ip地址,address修改为上文配置的端口XXXX
3.开始debug
重启远程应用,查看应用日志
看到Listening for transport dt_socket at address: XXXX
在idea就可以启动远程debug了,点击debug按钮,进入断点,开始debug