none
system.data.oracleclient 中 CommandTimeout 默认为0 的疑问? RRS feed

  • 问题

  •  

    在用自带的oraclecleint去连接数据库,CommandTimeout 默认为0,即永远不超时。

    有这样这个问题,在生产中发现如果网络出现问题,导致数据库执行结果无法返回应用服务器,执行将一直处于excute状态,

    一般在应用中,我们如何来处理这样一种情况? 转用odp.net?还是自己写连接池,还是有其他机制可以保证它至少能抛出个异常!!!!!

                                               求解!

     

     

     

     

     

     

    2011年8月22日 8:01

答案

  • 可以自己写个连接池,并在里面设置好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;

    希望能帮助你


    Jackie Sun [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.


    2011年8月26日 9:44
    版主