We've got a web app here that used reporting services. Their programmers have coded every report that runs to create a new report in a temp_reports folder. They never come back and delete these.
I've got 30,000 reports in that temp folder now, and ~12GB tied up in them. You can imagine I would like to delete them.
In report manager I can't even display the contents of that folder, it times out. I've setup a different temp folder that I'm manually cleaning up daily. I want to delete the old folder.
I open report manager, to the folder that temp folder is in, and view details. Then I select the folder and delete it. The system spins for 2 minutes, then reports the following error...
System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error) at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParserStateObject.ReadPacket(Int32 bytesExpected) at System.Data.SqlClient.TdsParserStateObject.ReadBuffer() at System.Data.SqlClient.TdsParserStateObject.ReadByte() at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) 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.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Microsoft.ReportingServices.Library.InstrumentedSqlCommand.ExecuteNonQuery() at Microsoft.ReportingServices.Library.DBInterface.DeleteObject(String objectName) at Microsoft.ReportingServices.Library.DeleteItemAction.PerformActionNow() at Microsoft.ReportingServices.Library.DeleteItemAction.PerformActionInBatch(CallParameters parameters) at Microsoft.ReportingServices.Library.RSService.ExecuteBatch(Guid batchId) at Microsoft.ReportingServices.WebServer.ReportingService2005Impl.ExecuteBatch() at Microsoft.ReportingServices.WebServer.ReportingService2005.ExecuteBatch() --- End of inner exception stack trace ---
I would prefer to know the setting that will adjust this 2 minute timeout to be longer. No settings in any of the .config files I've found will do this.
I only know there's 30,000 files in there by selecting count(*) from catalog where path = 'temp_reports'. I would like to delete them the same way, but am VERY hesitant to just go whacking rows from my report server DB. It at least works now, if not slowly.
Is there a function that can be scripted to delete these? I've seen indications that I might have to use rs.exe and writeup a vb.net script to drop the offending reports. (which would be not so bad, because I could then script daily deletion of these)
Anyone, anyone?
Thanks, in advance!
I've got 30,000 reports in that temp folder now, and ~12GB tied up in them. You can imagine I would like to delete them.
In report manager I can't even display the contents of that folder, it times out. I've setup a different temp folder that I'm manually cleaning up daily. I want to delete the old folder.
I open report manager, to the folder that temp folder is in, and view details. Then I select the folder and delete it. The system spins for 2 minutes, then reports the following error...
System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error) at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParserStateObject.ReadPacket(Int32 bytesExpected) at System.Data.SqlClient.TdsParserStateObject.ReadBuffer() at System.Data.SqlClient.TdsParserStateObject.ReadByte() at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) 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.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Microsoft.ReportingServices.Library.InstrumentedSqlCommand.ExecuteNonQuery() at Microsoft.ReportingServices.Library.DBInterface.DeleteObject(String objectName) at Microsoft.ReportingServices.Library.DeleteItemAction.PerformActionNow() at Microsoft.ReportingServices.Library.DeleteItemAction.PerformActionInBatch(CallParameters parameters) at Microsoft.ReportingServices.Library.RSService.ExecuteBatch(Guid batchId) at Microsoft.ReportingServices.WebServer.ReportingService2005Impl.ExecuteBatch() at Microsoft.ReportingServices.WebServer.ReportingService2005.ExecuteBatch() --- End of inner exception stack trace ---
I would prefer to know the setting that will adjust this 2 minute timeout to be longer. No settings in any of the .config files I've found will do this.
I only know there's 30,000 files in there by selecting count(*) from catalog where path = 'temp_reports'. I would like to delete them the same way, but am VERY hesitant to just go whacking rows from my report server DB. It at least works now, if not slowly.
Is there a function that can be scripted to delete these? I've seen indications that I might have to use rs.exe and writeup a vb.net script to drop the offending reports. (which would be not so bad, because I could then script daily deletion of these)
Anyone, anyone?