前情提要
由于有这个待办的存在,我将尝试去证明:JNDI
配置后,与数据库通信层的连接代码是交给了 Tomcat,JBOSS 等完成
虽然可能没什么意义,但是有疑问想要自己解决不总是坏的
在Debug时,尝试通过通讯层面证明为Tomcat
与Mysql
通信
在抓包过程中,很遗憾,只能得到目的端口和来源端口信息(当然咯,网络层面通讯进行数据库查询带什么本地进程信息呢?),如下图
3306
是MySQL
的默认端口,如果4894
是固定端口,且该服务属于Tomcat
的话,此次证明就可以告一段落了
显然没有那么简单,重新运行发现连接数据库3306
-Server 端口
所对应的Client
端口并不固定,那么只能说明将要进行连接时,Client
从 OS 处申请了一个端口,也没有指定。
所以如果可以找到端口
对应的进程
对应的文件位置
,如果该文件处于Tomcat
目录,而非JDK
,项目目录,岂不是也可以证明是Tomcat
发起连接的?
答案:很遗憾,不能,找到的是 JDK 中的 java.exe
当然了笨蛋,JVM 管所有,所以如果有 java 程序发起连接,都需要经过 JVM 啊,JVM 当然来源于
java.exe
咯,笨蛋
但是尽管这是让自己无语的一次脑洞尝试,但这次的排查有一些知识点可以记下来,故有此文章
端口号查进程id
进程id
,也叫pid
需要知道的东西:需要查询的端口号
在有端口号的前提下,可以通过如下命令进行端口查询
|
|
根据pid,就可以确定一个具体的进程了
进程id查任务名
命令如下
|
|
但是笔者不满足,笔者想要知道可执行文件的具体目录位置
所以有下
进程id查文件所在位置
命令如下
|
|
OK,记录在此