当连接请求的数目较多时,oracle数据源将返回null连接。我有隐含的缓存enabled.The oracle规范说null is returned only is ConnectionWaitTimeout is set。我没有在缓存属性中设置ConnectionWaitTimeout的值。
这就是说明书所说的。
ConnectionWaitTimeout
指定请求连接且已有活动的MaxLimit连接时的缓存行为。如果ConnectionWaitTimeout大于零,则每个连接请求都会等待指定的秒数,或者直到连接返回到缓存。如果在超时之前没有连接返回到缓存,则连接请求返回null。
默认值:0(无超时)
数据源可能返回空连接的其他可能情况是什么?
发布于 2009-03-30 20:50:18
我认为默认设置可能会根据您使用的Oracle版本而有所不同。有些信息是矛盾的,例如Oracle "Optimizing Connection Pool Behavior“暗示默认值是3秒(11g?)而其他消息来源说它是零,正如问题中提到的那样。
我建议显式地将它设置为零,看看行为是否仍然表现出来。
发布于 2009-03-30 21:35:54
我尝试设置此值。尽管文档显示默认设置为无超时,但当我没有设置此属性时,数据源返回null。当我显式地指定一个连接正在等待的值时,即使将值设置为0也会给我一个空连接。
https://stackoverflow.com/questions/698908
复制相似问题