ASP.NET间歇性DB2连接问题

时间:2015-07-06 17:02:49

标签: c# asp.net asp.net-mvc db2 windows-server-2008-r2

我们有一个ASP.NET MVC应用程序,它使用与iSeries的DB2连接来获取用户设置。我们在4个Windows 2008 R2 SP1服务器的Web场上托管该站点。

有时,来自其中一个服务器的对DB2的任何查询都将失败并显示消息"发生通信错误"。此外,当发生此通信错误时,该服务器有时无法从我们的会话状态服务器获取用户会话错误"无法向会话状态服务器发出会话状态请求..."。但它会在此事件期间定期与不同的服务器进行SQL Server查询通信。服务器场中的其他3台服务器都很好,如果我们重新启动问题服务器,它将恢复正常。

查看事件查看器没有显示服务器突然出现通信问题的原因。服务器指标也看起来正常。该问题在4台服务器中的任何一台上间歇性地发生。这种情况在几个月前就开始发生,并且在过去几周内更频繁地发生。之前,我们使用当前的设置运行了多年,并确信代码中的任何更改都不会影响这一点。任何关于问题可能是什么或如何排除故障的帮助将不胜感激。这是我们的代码段,如果有任何帮助

using (var cn = new iDB2Connection("ConnectionTimeout=45;Pooling=true;MinimumPoolSize=1;MaximumPoolSize=-1;MaximumUseCount=100;CheckConnectionOnOpen=true;DataSource=XXX;Naming=SQL;DataCompression=True;UserID=XXX;password=XXX;"))
        {
            try
            {
                cn.Open();

                using (var cmd = new iDB2Command(query, cn))
                {
                    //execute reader
                }
            }
            catch (Exception ex)
            {
                //generate error email
            }
            finally
            {
                if (cn.State != ConnectionState.Closed)
                {
                    cn.Close();
                }
            }
        }

0 个答案:

没有答案