一、远程Debug-dubbo
1、修改Dubbo项目下的/bin/start.sh中远程调试address,保证其唯一,代码如下所示:
2、修改Dubbo项目下的/bin/restart.sh文件,并重启Dubbo服务
./stop.sh
./start.sh debug
3、断开连接
二、远程Debug-tomcat
1、Linux中配置tomcat在catalina.sh中添加如下
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n(不要换行,要在同一行)
2、Window中修改 catalina,bat文件,添加:
Set “CATALINA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
参数说明:
-Xdebug : 启用调试模式
-Xrunjdwp : 加载JVM的JPDA参考实现库
transport=dt_socket :Socket连接,可选dt_shmem 通过共享内存的方式连接到调试服务器
address=8000 :调试服务器监听的端口
server=y : 是否是服务器端,n为客户端
suspend=n : 启动过程是否加载暂停,y为启动时暂停,方便调试启动过程
3、启动tomcat,看看tomcat是否启动成功,
如果启动成功,tomcat日志文件(catalina.out)中会有如下输出:
Listening for transport dt_socket at address: 8000
4、使用eclipse调试:
注意:
可能出现的连接问题:
Failed to connect to remote VM. Connection refused.Connection refused: connect。
出现如图所示的情况可能是已经建立了一个连接了。
解决方法:去debug透视图中
找到点击断开链接就可以解决问题了。
三、远程Jconsole
1、修改Dubbo项目下的/bin/start.sh中远程链接端口(com.sun.management.jmxremote.port),保证其唯一,代码如下所示:
2、修改Dubbo项目下的/bin/restart.sh文件,并重启Dubbo服务
./stop.sh
./start.sh jmx
3、window系统基于本地JDK jconsole 对远程JVM进行监视,打开JAVA_HOME/bin/jconsole.exe ,具体使用详情如下所示:
可以对其内存、线程等信息进行监控。当然对本地的程序的性能进行监控也是可以的。