Arthas 获取当前java进程的数据库连接信息

2019-08-11  本文已影响0人  Only_lezi

本文来自 布灵格 - Arthas 获取当前java进程的数据库连接信息

  1. 进入arthas目录, 执行 java -jar arthas-boot.jar 启动Arthas

    arthas进程启动
  2. 执行 tt 命令来记录 RequestMappingHandlerAdapter#invokeHandlerMethod 的请求,
    tt -t org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter invokeHandlerMethod

  3. 然后访问你连接进程的网页, 例如: http://localhost:8080

    访问网页
    可以看到Arthas会拦截到这个调用, index是1000
  4. 使用 tt 命令的 -i 参数来指定index, 并且用 -w 参数来执行 ognl 表达式来获取 spring context,
    tt -i 1000 -w 'target.getApplicationContext()'

    image.png
  5. 获取到 applicationContext 之后我们就可以干一些大(ni)事(dong)情(de)...

  6. 接下来进入正题, 我们执行 tt -i 1000 -w 'target.getApplicationContext().getBean("dataSource").getUrl()'
    来获取数据库的连接

    数据库连接地址
    数据库连接用户名
    数据库连接密码

这样就知道当前进程连接的数据库实例是不是符合我们预期的结果啦

参考:
Alibaba Arthas实践--获取到Spring Context,然后为所欲为

上一篇下一篇

猜你喜欢

热点阅读