我尝试多次使用 OracleDataSource 连接。在类中,我将 cacheProperty 设置为 10:
cacheProps.setProperty("MaxLimit", "10");
调用连接的类正在等待返回值,这样两个调用就不会同时进行。使用连接的类在类中的随机位置获取一个带有连接变量的空指针。它总是在第 5 个请求时发生。是否有一些我不知道的属性暗示您只能使用连接池 4 次?
这是出现空指针的代码片段:
int threadNo = 2;
Connection conn = OraConnODS.getConnection("env " + threadNo);
conn.setAutoCommit(false);
Statement stm = conn.createStatement();
通常在第二行,有时在第三行。
最佳答案
尝试这个查询来检查在 oracle 中实际打开了多少个连接
SELECT
'Currently, '
|| (SELECT COUNT(*) FROM V$SESSION)
|| ' out of '
|| VP.VALUE
|| ' connections are used.' AS USAGE_MESSAGE
FROM
V$PARAMETER VP
WHERE VP.NAME = 'sessions'
看看计数是否 > 10。如果 > 10,那么您需要发布完整的代码/xml 让我们看看。
关于使用 4 次后 OracleDataSource Connection 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17513929/