首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SSRS -改名为TempDB,现在没有发送订阅报告

SSRS -改名为TempDB,现在没有发送订阅报告
EN

Stack Overflow用户
提问于 2013-10-14 13:15:20
回答 3查看 8.4K关注 0票数 2

我目前无法从SSRS发送基于时间的订阅报告,以便在Server 2012上安装新的Server 2012。

我在SSRS LogFiles中收到以下错误

schedule!WindowsService_5!dc4!10/14/2013-10:01:09::i信息:使用数据1a762da1-75ab-4c46-b989-471185553304处理事件TimedSubscription。library!WindowsService_5!dc4!10/14/2013-10:01:09::e错误:引发Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerStorageException:时,报表服务器数据库中发生错误。这可能是由于数据库中的连接失败、超时或磁盘状况低所致。library!WindowsService_5!dc4!10/14/2013-10:01:09::w警告:事务回滚未执行连接是无效的schedule!WindowsService_5!dc4!10/14/2013-10:01:09::i INFO:错误处理事件'TimedSubscription',data = 1a762da1-75ab-4c46-b989-471185553304,Error = Microsoft.ReportingServices.Diagnostics.Utilities.ReportServerStorageException:在报表服务器数据库中发生错误。这可能是由于数据库中的连接失败、超时或磁盘条件低造成的。-> System.Data.SqlClient.SqlException:无效对象名称'ReportServerTempDB.dbo.ExecutionCache‘。

数据库是从SQL 2008迁移而来的,这是由第三方完成的,我不确定是否忽略了什么。

如能提供任何协助,将不胜感激。

谢谢。

丹恩

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-14 15:19:40

这条线似乎解决了你的问题。

http://www.sqlservercentral.com/Forums/Topic553765-147-1.aspx

在发布错误信息之前,请先做一点研究。

在“链接”之后,我发现了一个引用无效对象的触发器。ReportServer表计划中的触发器ReportServer表中有违规的引用。在测试中,我更改了该触发器以引用正确的报表服务器tempdb,现在订阅似乎正常工作。到目前为止,我还没有发现其他任何故障。“

“如果有人正在寻找一个快速的答案,那么下面就是我为解决我的问题所做的事情:

  • 更新dbo.schedule上的触发器以引用正确的tempdb。
  • 将所有具有其权限的存储过程脚本化到一个新查询上,然后用新查询“查找并替换”旧的tempdb的所有实例。“
票数 2
EN

Stack Overflow用户

发布于 2016-12-28 17:11:56

在搜索解决此问题的解决方案之后,我发现这是由于Server代理的作业定义没有完全迁移到新服务造成的。对于在SSRS中创建的每个订阅,Server代理中都定义了一个关联的作业。对于通过订阅进行大量报表传递的服务,最好将这些作业定义导出并导入到新服务器中。

票数 1
EN

Stack Overflow用户

发布于 2015-09-10 15:11:54

丹尼尔E.答案是正确的。

在更新现有订阅时,我花费了大量的时间来查找它和正在获取的错误。

“报表服务器数据库中发生错误。这可能是由于数据库中的连接失败、超时或磁盘条件低造成的。(RsReportServerDatabaseError)“

当我使用上面的错误在线搜索时,我无法修复它。很长一段时间后,我发现跳跳虎正指向旧的数据库。以下是临时数据库: ReportServerTempDB在更新以更正tempDB之后,都开始正常工作。

代码语言:javascript
复制
ALTER TRIGGER [dbo].[Schedule_UpdateExpiration] ON [dbo].[Schedule]  
AFTER UPDATE
AS 
UPDATE
   EC
SET
   AbsoluteExpiration = I.NextRunTime
FROM
   [ReportServerTempDB].dbo.ExecutionCache AS EC
   INNER JOIN ReportSchedule AS RS ON EC.ReportID = RS.ReportID
   INNER JOIN inserted AS I ON RS.ScheduleID = I.ScheduleID AND RS.ReportAction = 3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19361121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档