这周或许解了之前某段时间的疑惑

26 天前
 cobbage
工作了十年牛马这周又学了个技能!

这两年在搞运维,也有些优化类的工作。这周学到的技能点是库里面的链接信息有客户端的机器和 pid 。但是 java 的默认是 1234 。也就是说看 java 程序的链接只能找到机器定位不到程序的,另外链接也是有状态的。

也可能化解了我之前的一个疑问?公司的一个老系统居然能监控到未释放的链接,有段时间我一直再网上找这样的包但没找到!这次问题我又看了下老系统拿的链接 jdbc 都是从统一的地方拿的从古老的 tomcat 配置的连接池。所以他能监控,这应该是那段时间的疑惑!
1494 次点击
所在节点    程序员
5 条回复
guyeu
25 天前
没有上下文实在看不下去。。。


这是个规范的问题,在创建数据库会话时是否把客户端的一些信息传递给服务器是需要程序控制的。
cobbage
25 天前
@guyeu 数据库 oracle 的。tomcat web 程序拿不到链接宕机了。别的部门系统在排查连接数的(但他们上来有点恶心)。数据库 session 信息的状态不是 active 的(这些是连接池的空闲链接),没有关联的 sql 的,只能找到机器,pid 是没的)
guyeu
23 天前
头疼,你所处的位置,你面对的上下文别人是没有的,大多数人看到你这样的表达直接就略过了,理解起来实在难受。

我的评论是针对 “库里面的链接信息有客户端的机器和 pid” 的,数据库客户端在创建连接时,可以通过代码或配置的方式,传递一些客户端信息(不仅说 JDBC 和 Oracle ,几乎所有的商业化数据库都有类似机制),各个客户端的默认配置可能有所出入,你所谓的“机器和 PID”,所有的数据库都能读到客户端的 IP 和端口号,这是 TCP 决定的,如此就可以定位到客户端进程(并不需要客户端的 PID )。

重点:每一个字段都不是凭空来的,都是客户端的程序配置的,配置的方式在你使用的客户端的文档里有,运维或 DBA 有这方面的需求,应该制定规范,或者把规范封装成 library 。

两手一摊朝天要饭,是要不来 PID 的。
cobbage
23 天前
@guyeu pid 我看了 plsql (这类工具是有的。jdbc 跟我在网上找的一个说明是对应的默认 1234 。至于 jdbc 能不能穿 pid 这个我后面再了解下。
cobbage
23 天前
@guyeu 没太多上下文一部分个人表达问题,一部分在地铁上用手机写的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1140004

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX