RAY*_*RAY 5 oracle jdbc session
我用谷歌搜索了一下,我的印象是
来自客户端的 Sql*net 消息
表明 Oracle DBMS 正在等待客户端向 DBMS 发送新命令,因此在此事件中花费的任何时间都应该是客户端时间,而不是消耗 DB 服务器 CPU。换句话说,通常情况下,如果一个会话在这个事件中,它应该是“INACTIVE”而不是“ACTIVE”。
令我们困惑的是,从本周开始(在我们开始使用连接池之后 [我们使用 dbcp]),我们偶尔会在
来自客户端的 Sql*net 消息
事件并长时间同时显示“ACTIVE”。在这段时间内,DB 上的 CPU 使用率很高。
谁能解释一下这意味着什么?如果 DB 会话正在等待客户端发送消息,那么它可以是“ACTIVE”并消耗 CPU 周期的原因是什么?
看来我们找到了罪魁祸首。在最近的应用程序服务器升级之后,我们无意中将 ojdbc14 和 ojdbc6 jar 包含到我们的部署中,显然,jvm 选择了 ojdbc14 作为其 Oracle DB 驱动程序。由于我们手动删除了 ojdbc14,因此在过去 24 小时内没有再次出现此问题。我认为 ojdbc14 不再受到官方支持,因此它可能会导致各种有趣的问题。
我们的下一步是首先找出 ojdbc14 是如何潜入部署的。