Oracle Datasource返回null连接

时间:2009-03-30 20:37:19

标签: java database oracle connection datasource

当没有连接请求更多时,oracle数据源返回null连接。我启用了implict缓存。只有在设置了ConnectionWaitTimeout时,oracle规范才会返回null。我没有在缓存属性中为ConnectionWaitTimeout设置值。

这是规范所说的

ConnectionWaitTimeout

指定请求连接且已有MaxLimit连接处于活动状态时的缓存行为。如果ConnectionWaitTimeout大于零,则每个连接请求等待指定的秒数或直到连接返回到缓存。如果在超时之前没有连接返回缓存,则连接请求将返回null。

默认值:0(无超时)

Datasource可以返回空连接的其他可能性是什么?

2 个答案:

答案 0 :(得分:2)

我认为默认值可能会有所不同,具体取决于您使用的Oracle版本。一些信息是矛盾的,例如Oracles“Optimizing Connection Pool Behavior”意味着默认值为3秒(11g?),其他来源表示问题中提到它为零。

我建议明确地将其设置为零,看看行为是否仍然表现出来。

答案 1 :(得分:0)

我尝试设置此值。虽然文档说默认没有超时,但是当我没有设置此属性时,数据源返回null。当我明确指定一个值时,连接正在等待,即使值为0也给了我一个空连接。