如何检查Oracle中的活动连接?

时间:2015-05-22 14:28:42

标签: oracle hibernate oracle-sqldeveloper c3p0

我们使用hibernate使用连接池,我们希望跟踪池中的活动连接。是否可以找到使用查询或任何数据库工具?

2 个答案:

答案 0 :(得分:2)

您可以查询v$session

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

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

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

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

答案 1 :(得分:2)

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

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

JMX监控既有趣又简单!