这段时间遇到一个问题就是ReportService 中采用了远程连接的报表偶尔会断开连接,导致报表导出异常,查阅了很多资料,几天来就是断断续续的终于解决了这个问题,下面把一些解决的点一一展示出来,便于大家将来遇到同样问题无从下手。

首先是报错,接下来我马上去看日志,很多人不知道文件的位置,一般默认就是这个路径(Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\LogFiles)。

主要的错误如下:

1. System.Data.SqlClient.SqlException: 超时时间已到。在操作完成之前超时时间已过或服务器未响应。

2. 偶尔还会连接池已满等错误。

综合一下,问题是时而有,大多数时候没有,那么我将问题集中到两个地方一个是数据量过大导致连接超时,另一个是网络、参数等配置问题。

过滤情况:

1.采用了远程数据库,不是共享数据源(SharePoint),因此排除了更新数据后对数据源的同步问题。(如果是则需要确保每次看之前数据源得到更新)

2.域账户权限问题,虽然是域内访问,当时权限没有问题,因为大多数时候是可以访问的。(否则需要添加访问权限)

3. 远程服务器环境,也没有问题,数据库允许远程连接,且硬盘环境没有问题。(否则会显示low disk condition within the database

接下来是我经过综合分析修改的几个地方:

1.配置设置是在 RSReportServer.config 文件中指定的参数。

a.计划内和计划外回收操作,影响应用程序池的回收。这个在C#部分将来可以详细讨论

<RecycleTime>720</RecycleTime>

<MaxAppDomainUnloadTime>30</MaxAppDomainUnloadTime>这两个值默认即可。

b.<Add Key="DatabaseQueryTimeout" Value=""/> 查询超时时间尽量设置大一些,当然在一些环境下不能这么做比如频繁查询的,数据量较小的时候。对于我的报表系统而言,用的比较少且很多大的报表所以设定为30分钟。

2.修改web.config中的参数

httpRuntime是配置asp.net http运行时设置,以确定如何处理对asp.net应用程序的请求。
     executionTimeout:表示允许执行请求的最大时间限制,单位为秒
     maxRequestLength:指示 ASP.NET 支持的最大文件上载大小。该限制可用于防止因用户将大量文件传递到该服务器而导致的拒绝服务攻击。指定的大小以 KB 为单位。默认值为 4096 KB (4 MB)。

类似于C#中CommandTimeout 这个参数就是我们的执行时间超时值,如果太小就会引发执行失败。

3.接下来就是对RS 的参数修改

a.设置站点设置-》常规

其中在RSDB中也可以设置这个值,参数为默认为600or1800。直接选择不设置。

b.对于数据集的参数设置

首先在开发的时候就可以设置比如timeout时间。一般默认为0.然后这里我做了如下修改

点击出现问题的报表右键,然后选择管理

注意这个地方是关键,对于这种共享数据源的数据集也要设置,选择不对报表时间设置超时,或者指定超时时间。默认值我推测可能是15or30。这样在wait时极有可能造成超时。

当然以上只是我的最后得出的推论,还需要注意一下几点:

1.这期间修改了很多地方比如连接参数修改过connection timeout 参数,maxpool等

2.有一些地方的配置也需要注意,比如远程连接中尽量采用IP地址作为连接对象,尽量不要使用服务器缩写名称,这样在DNS匹配的时候经常会影响,尤其是涉及到服务器迁移的时候会出问题。其次会影响响应速度。有些时候设置需要清洗DNS的匹配。

3.服务器端的防火墙配置,添加出站入站规则,一般默认端口1433,否则需要制定规则。

4.RS报表或者其他的连接方式

对于.net之类的微软程序尽量选择SQLServer 的数据源,这样速度更快尤其是SSRS已经SSIS,如果非微软数据源,可采用oledb等,但是注意升级数据库,使用最新的驱动程序。

总结

由于这个偶尔断开的连接问题,让我断断续续地看了好多资料但是真正解决起来才发现小的知识点很多,这里也不过多展开了。报表这块由于太占资源必须经常性的检查优化。这期间监测网络是否畅通,数据库环境是否出现问题等都是要做好自动化监控的。

补充:

突然想起来一个老问题,是关于网络连接问题引发的数据库访问异常。也会引发类似的问题,涉及到远程链接访问的。

原因是对于SQLServer 的TCP/IP地址而言默认访问IPV4地址。所以当服务器上有IPV6地址时,会去访问IPV6从而引发连接超时等现象。具体的修复步骤如下:

1.不需要用IPv6的话直接在网络连接中将Ipv6的选项勾掉然后应用即可。如图:

2. 如果必须使用IPv6,则需要执行以下步骤:

  • 打开SQLServer 配置管理器
  • 点击网络配置下面的协议
  • 右侧点击TCP/IP,右键属性。

  • 为每一个IP地址的端口号都输入你的默认端口号,然后活动和启用都选择是。应用即可
  • 如有必要还要添加端口或者程序的入站规则(端口),出站规则。

转载于:https://www.cnblogs.com/wenBlog/p/5731930.html

SSRS报表连接超时的问题相关推荐

  1. mvc中嵌入ssrs报表_如何在SSRS报表中过滤多维OLAP多维数据集

    mvc中嵌入ssrs报表 Ever since the early days of my career, SQL Server Reporting Services (SSRS) has been o ...

  2. oracle 水晶报表开发,水晶报表连接Oracle做数据报表笔记

    首先,新建一个水晶报表的文件,这个时候要给这个报表文件绑定一个oracle数据源, 选择右侧菜单的这个东西,选择"数据库专家",打开之后是这么一个界面: 选择建立新连接: 这个地方 ...

  3. Druid获取连接超时,导致服务不可用

    前言 一个微服务模块在运行一段时间之后,整体服务就不可用了,但是服务却没有打印任何错误日志.而对服务进行重启之后,服务就可以暂时提供一段时间服务,过一段时间之后再次不可用. 分析 服务进行重启就可以正 ...

  4. ssrs报表教程_SSRS报表生成器简介和教程

    ssrs报表教程 The SSRS report builder is a powerful tool for data visualization. In this article, we will ...

  5. mysql导入sql文件过大或连接超时的解决的方法

    前段时间出差在现场开发的时候,导入数据库老是出问题.最后发现了一个奇妙sql语句交给实施,仅仅要导入出错就把例如以下语句运行就能够了.至今屡试不爽. set global max_allowed_pa ...

  6. 修正版 | QPS过万,Redis大量连接超时怎么解决?

    之前负责的一个服务总是在高峰时刻和压测发生大量的redis连接超时的异常redis.clients.jedis.exceptions.JedisConnectionException,根据原有的业务规 ...

  7. QPS过万,redis大量连接超时怎么解决?

    7月2号10点后,刚好某个负责的服务发生大量的redis连接超时的异常(redis.clients.jedis.exceptions.JedisConnectionException),由于本身的数据 ...

  8. 服务器连接超时不响应怎么回事,勇者斗恶龙x服务器没有响应连接超时解决方法...

    勇者斗恶龙x服务器没有响应连接超时怎么办?勇者斗恶龙x服务器没有响应连接超时解决方法.今天小编就带大家一起来看一下这一问题的解决方法,一起来看一下吧! (24日国服首测正式开启) 勇者斗恶龙10进不去 ...

  9. 如何解决MySQL连接超时关闭

    最近做网站有一个站要用到WEB网页采集器功能,当一个PHP脚本在请求URL的时候,可能这个被请求的网页非常慢慢,超过了mysql的 wait-timeout时间,然后当网页内容被抓回来后,准备插入到M ...

最新文章

  1. 入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集-深度学习问题
  2. 一个关于思科路由器ping的有趣现象
  3. mysql 存储过程 动态建表_MySQL存储过程动态创建表,数据分表
  4. angular模块库开发实例
  5. php使用file,PHP中is_file()函数使用指南
  6. 1.10 比较两个数组是否相等(equals())
  7. WPF 实现大转盘抽奖~
  8. DataFrame.to_dict(orient='dict')英文文档翻译
  9. JAVA正确地自定义比较对象---如何重写equals方法和hashCode方法
  10. 马希荣计算机应用,天津师范大学硕士研究生导师:马希荣
  11. form表单提交大量input,php接收不全
  12. 050、动手实验:使用 jstat 摸清线上系统的JVM运行状况
  13. 【C++】实现一个日期计算器
  14. 【5G基础知识】5G网络的架构分析
  15. 摄像头8mm可以看多远_视频监控摄像头焦距、角度、距离参考值
  16. Sack Panic漏洞TCP MSS机制(二)(together with myself)
  17. sql 数据库课程设计作业——基于python--GUI的运动会报名管理系统
  18. T-SQL的简介以及基本语法
  19. .metadata\.plugins\org.eclipse.wst.server.core
  20. CorelDRAW最新24.1.0.360版本更新介绍讲解

热门文章

  1. 【vuejs深入三】vue源码解析之二 htmlParse解析器的实现
  2. vue写的简单版todolist
  3. 圆你“鸟人”梦,全身VR模拟飞行器Birdly带你飞
  4. Android开发实践:如何设置NDK的编译选项
  5. MySQL双主(master-master)+半同步(Semisync Replication)
  6. SylixOS ARP攻击解决办法
  7. ant 的 copy 使用
  8. MyEclipse或者Eclipse内存溢出问题
  9. django-2 模板文件的加载
  10. windows域中时间同步的解决方案