0

我有一个数据驱动的订阅,每次运行时都会在报告管理器中显示“待定”状态。然后过了一会儿它出错了

错误:超时已过。在操作完成之前超时时间已过或服务器没有响应。该语句已终止。

我在这里没有做任何特别的事情。我用于检索用户的存储过程仅返回 2 条记录(并在 Management Studio 中立即执行)。报告的数据也不是什么花哨的东西。它从 3 个数据源中提取了大约 3 条记录——所有基于通过参数传入的 ID 的非常简单的选择。

当我将此报告设置为定期发送时,它工作正常。只有当我让它数据驱动时,它才会超时。

我的配置中的超时设置为默认值(120 秒)。

这是日志所说的。

ReportingServicesService!dbpolling!4!12/20/2010-14:52:03:: EventPolling processing item 3c45f091-aab6-4354-bd1e-e5a8a8103391
ReportingServicesService!dbpolling!c!12/20/2010-14:52:03:: EventPolling processing 1 more items. 1 Total items in internal queue.
ReportingServicesService!library!4!12/20/2010-14:52:03:: Schedule fc2dd7c4-ae29-4e20-a24f-e6d7ee04686d executed at 12/20/2010 2:52:03 PM.
ReportingServicesService!schedule!4!12/20/2010-14:52:03:: Creating Time based subscription notification for subscription: 8a70b89a-bcea-403a-a200-ed0b6e4bc4ab
ReportingServicesService!library!4!12/20/2010-14:52:03:: Schedule fc2dd7c4-ae29-4e20-a24f-e6d7ee04686d execution completed at 12/20/2010 2:52:03 PM.
ReportingServicesService!dbpolling!4!12/20/2010-14:52:03:: EventPolling finished processing item 3c45f091-aab6-4354-bd1e-e5a8a8103391
ReportingServicesService!dbpolling!4!12/20/2010-14:52:03:: EventPolling processing item 63c3c8af-b3e5-4822-bb17-73f5f1b9fecc
ReportingServicesService!dbpolling!c!12/20/2010-14:52:03:: EventPolling processing 1 more items. 1 Total items in internal queue.
ReportingServicesService!dbpolling!4!12/20/2010-14:52:03:: EventPolling finished processing item 63c3c8af-b3e5-4822-bb17-73f5f1b9fecc
ReportingServicesService!library!d!12/20/2010-14:52:33:: e ERROR: Error processing data driven subscription: System.Data.SqlClient.SqlException: Timeout expired.  The timeout period elapsed prior to completion of the operation or the server is not responding.
The statement has been terminated.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
   at System.Data.SqlClient.SqlDataReader.get_MetaData()
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
   at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.ReportingServices.DataExtensions.SqlCommandWrapperExtension.ExecuteReader(CommandBehavior behavior)
   at Microsoft.ReportingServices.Library.DataDrivenSubscriptionHandler.DataDrivenSubscriptionWorker(Object o)

我尝试使用本地管理员帐户(也是 sa)创建一个新数据源,但仍然超时。这份报告没什么特别的。它实际上只是带有少量数据的格式化文本。我正在使用 SSRS 来处理发送格式化的电子邮件。我唯一担心的是运行 SSRS 的机器只有 2.0 GB 内存。这会导致超时吗?但是为什么当我为一个用户执行报告时,它很好,但对于 2 个用户它会变得很糟糕?

4

2 回答 2

1

您能否在数据库服务器上设置跟踪以查看您是否在数据源服务器上遇到了意外情况?

您还可以在 perfmon 中监视 IIS 进程使用的内存,但根据您的描述,我认为您的服务器可以生成此报告。但是,也许您正在生成大量 PDF?SQL 2005 在做这些事情时可能会遇到麻烦。

于 2010-12-21T21:12:39.290 回答
0

我找到的解决方案在这里。我将订阅和报表数据源都设置为使用经过 Windows 身份验证的用户,以便报表可以在无人值守的情况下运行。在 BIDS 和报表管理器中工作的默认数据源未设置为允许无人参与的报表运行。

于 2010-12-21T22:05:49.930 回答