【问题标题】:How can I check active connection in Oracle?如何检查 Oracle 中的活动连接?
【发布时间】:2015-08-04 15:11:58
【问题描述】:

我们已经通过休眠使用了连接池,我们想要跟踪池中的活动连接。是否可以使用查询或任何数据库工具找出答案?

【问题讨论】:

  • 您对活动连接的定义是什么?您可以连接到 Oracle,但没有会话。您可以连接,有会话,但这将是一个空闲会话(没有活动事务)。您可以连接,进行会话,并且可以进行交易。

标签: oracle hibernate oracle-sqldeveloper c3p0


【解决方案1】:

您可以查询v$session

select * from v$session where USERNAME='<username configured in c3p0>'

您可以找到有关 v$session 列here 的更多信息,该视图有一个活动列指示是否正在执行某些 sql。

您需要一些明确的权限才能对 v$session 发出查询,例如

GRANT SELECT ON v_$session TO <user who monitor>;

【讨论】:

    【解决方案2】:

    您可以通过 JMX 监控 c3p0,或者通过PooledDataSource 接口编写您自己的代码。

    您要观察的属性是numBusyConnectionsAllUsersnumBusyConnectionsDefaultUser(无论是通过JMX 还是直接访问PooledDataSource。这两个值在您仅通过身份验证信息访问连接的最常见情况下是相同的在您的 DataSource 中配置。如果您确实使用多个身份验证,那么这两个值将不同(您可能对 getNumBusyConnections(username, password) 方法感兴趣。

    JMX 监控既有趣又简单!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-30
      • 1970-01-01
      • 2012-04-24
      • 1970-01-01
      • 2010-11-05
      • 2010-11-08
      相关资源
      最近更新 更多