在用自带的oraclecleint去连接数据库,CommandTimeout 默认为0,即永远不超时。
有这样这个问题,在生产中发现如果网络出现问题,导致数据库执行结果无法返回应用服务器,执行将一直处于excute状态,
一般在应用中,我们如何来处理这样一种情况? 转用odp.net?还是自己写连接池,还是有其他机制可以保证它至少能抛出个异常!!!!!
求解!
可以自己写个连接池,并在里面设置好CommandTimeout 的值,如果超时,则设定抛出异常即可。就像下面那样:
Data Source=myOracleDB;User Id=myUsername;Password=myPassword;Min Pool Size=10;Connection Lifetime=120;Connection Timeout=60;Incr Pool Size=5;Decr Pool Size=2;
希望能帮助你