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

本文来自 布灵格 - 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,然后为所欲为

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容