• 最近跟踪网站,发现还是存在"常规网络错误。"


    先在国内搜索相关问题,没找到特别合适的。
    无可奈何之好再去国外的找。这回终于找到正解了。

    错误:偶然才发生的错误,大概过了半个小时才会出现的。

    错误的原因,大概在于,sql连接池的数据连接由于某些原因变成了bad connection.
    so, 引用了这个错误的实际上已经失效了的连接去执行操作的时候产生一个异常,如果
    我再次去执行那个操作,那么连接池就会去除这个连接,并且重新打开,然后第二次的执行就可以了。 就是说,如果网页出现错误然后我再刷新这个页面,就可以了。那么一般都是这个原因。

    而且,在我的程序中,我都是用完了连接就立马关闭的,所以我想应该不会是连接数过多。

    所以,参照了国外一个人写的按照限定次数重新尝试执行查询。

    明后天在观察一下,如果没什么问题,那么就放心了。

    具体的代码:

    /// <summary>
            
    /// 允许重新尝试的数据适配器获取数据
            
    /// </summary>
            
    /// <param name="sqlDataAdapter">数据适配器</param>
            
    /// <param name="dataSet">数据集</param>
            
    /// <param name="tableName">表名</param>

            public static void FillDataSetAllowRetry(SqlDataAdapter sqlDataAdapter, DataSet dataSet, string tableName)
            
    {
                
    int retryCount = 0;
                
    while (true)
                
    {
                    
    try
                    
    {
                        sqlDataAdapter.Fill(dataSet, tableName);
                        
    break;
                    }

                    
    catch (SqlException ex)
                    
    {
                        sqlDataAdapter.SelectCommand.Connection.Close();
                        sqlDataAdapter.SelectCommand.Connection.Open();
                        retryCount
    ++;
                        
    if (retryCount >= RetryLimit)
                        
    {
                            ApplicationLog.WriteError(
    "FillDataSetAllowRetry exceed the limit times!" + ex.Message);
                            
    throw ex;
                        }

                    }

                    
    finally
                    
    {
                        sqlDataAdapter.SelectCommand.Connection.Close();
                    }

                }


            }


    我现在的情况: 网站和数据库不在同一个物理服务器上
    -------------------------------------------------
    跟踪了一天,终于问题不再。解决的两个方式:一方面,网管把防火墙作了一些设置,不再针对这个ip定时关闭无响应的连接。另一方面,程序增加错误后重复执行的功能了--变相的允许出错多少次。

    呵呵,现在终于感觉稳定多了。心也安了。

    --------------------------------
    555555555................     还是有问题,郁闷
    不过,现在通过设置config的 defaultredirect设置了一个errorpage.aspx
    然后那个页面重新刷新跳到首页。应该问题不会再有了。
    -------------------------------
    plus,
    现在发现一部分的原因是主机的连接池的销毁不够及时
    比如,我把网站的dll重新上传了。网站主机由于挂的虚拟主机太多,不能及时地编译新的
    dll.所以必须等待10-20分钟,重新访问才能恢复正常。这也是挺郁闷的问题的。
    ----------------------------------
    plus
    删除bin里面的dll,然后重新上传,就可以立即编译了。
    可能是虚拟主机响应比较慢的时候。

  • 相关阅读:
    顶点着色器详解 (Vertex Shaders)
    Texture Filter中的Bilinear、Trilinear以及Anistropic Filtering
    mysql远程访问1045的问题解决
    在eclipse上集成安装阿里巴巴代码规约P3C插件
    Mybatis Generator主要配置详解
    redis cluster最简配置
    springboot +redis配置
    redis cluster的conf配置文件配置
    MySQL与Oracle的主要区别
    java EE中使用PO和VO的注意事项
  • 原文地址:https://www.cnblogs.com/wildfish/p/198943.html
Copyright © 2020-2023  润新知