none
关于WebService 应用重启问题。 RRS feed

  • 问题

  • 我使用C++编写的OCCI调用Oracle数据库,通过托管C++进行封装后,由WebService调用。

    当客户端调用同时触发相同代码时,会经常引发Application_Start事件(没有Application_Error,Application_End事件发生),会使以前程序的调用失败。

    我是在Application_Start中调用托管C++封装代码创建Oracle连接池的。

    2010年8月27日 2:31

答案

  •  请考虑使用单例模式加 double check  lock  进行Oracle连接池初始化

    或者简单的用Lock()  把逻辑包裹起来

    static Object SyncObject=new Object();
    static bool IsInited =false;
    void Application_Start(xxxx....)
    {
      Lock (SyncObject)
      {
    if(!IsInited )
    {
         DoAnyInit();
         IsInited =true;
    }
      }
    
    
    }
    
    
    

    成为 Microsoft V Dash了。。。 欢迎各位前辈同事在OCS加我
    2010年8月27日 3:13