0

我有一個數據驅動的訂閱,它每次運行顯示報告管理器中的「待定」狀態。然後在一點點後出現錯誤數據驅動的訂閱超時連接

Error: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. The statement has been terminated.

我在這裏沒有做任何特別的事。我的檢索用戶的sproc只返回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 RAM。這可能會導致超時?但是爲什麼當我爲一個用戶執行報告時,沒問題,但是對於2個用戶來說,這個用戶是kablooey?

回答

0

我找到的解決方案是here。我將訂閱和報表數據源都設置爲使用Windows身份驗證用戶,以便報表可以無人值守運行。在BIDS和報表管理器中工作的默認數據源未設置爲允許無人值守報表運行。

1

您可以在數據庫服務器上設置trace以查看您是否在數據源服務器上收到意外的東西?

您也可以監視perfmon中IIS進程使用的內存,但根據您的描述,我認爲您的服務器可以創建此報告。但是,也許你正在生成一個大規模的PDF? SQL 2005可能會遇到麻煩做這樣的事情。