0

我在 ESB 中有一个数据源:

Driver              oracle.jdbc.driver.OracleDriver 
URL                 jdbc:oracle:thin:@(DESCRIPTION = ... ) 
Pool Type           BasicDataSource
Repository Type     JNDI 
Max Active          20 
Max Idle            1 
Max Wait            30000 
Min Idle            0 
Initial Size        0 
Max Open Statements 50 
Transaction Isolation   TRANSACTION_UNKNOWN
Auto Commit         false
Pool Statements     true
Test On Borrow      true
Test While Idle     true
Validation Query    select 1 from dual

在数据库级别,我对我的用户 100 个连接有限制。

在 ESB 数据源 20 中。

但有时我会达到数据库限制:ORA-02391:超出同时 SESSIONS_PER_USER 限制

如何检查池中有多少连接?

我尝试了 JMX,但没有找到合适的 mbean。

4

1 回答 1

0

JNDI 连接中似乎存在错误。

当我使用基于 JNDI 的数据源并且最大活动 = 20 时,

服务器允许向每个线程借用 20 个连接!

如果我使用内存数据源,那么 20 是所有线程的限制。

所以,问题解决了,但bug仍然存在。

于 2012-09-27T21:15:37.167 回答