Reportserver mit SSIS HTTP-Download starten
Ein Problem, was immer die ersten Anwender trifft, ist dass sich der ReportingService nach einiger Zeit des Müßiggangs dann endgültig schlafen legt. Ein erstmaliger Aufruf der Web-Site dauert bei mir dann ca. 30 Sekunden. Die Folgeaufrufe sind hingegen praktisch sofort erfolgreich.
Eine immer mal wieder beschriebene Möglichkeit den Dienst aufzuwecken, ist ein automatisierter HTTP-Download. Dafür gibt es auch entsprechende Hinweise in andereren blogs. Ich möchte dies aber lieber mit den eigenen Tools lösen und bediene mich hierzu eines Skript-Task, den ich bei Berthold Neumann gefunden habe.
Den Code habe ich für SQLServer2008 angepasst und stelle ihn hier zur Verfügung:
Imports System.Net
Public Sub Main()
'
Dim myWebClient As WebClient
Dim WebUrl As String
Dim Dateiname As String
Dim fireagain As Boolean
Try
myWebClient = New WebClient()
' Variable füllen
WebUrl = CStr(Dts.Variables("WebUrl").Value)
Dateiname = CStr(Dts.Variables("Dateiname").Value)
' Ereignismeldung senden (nur zur Information des Anwenders)
Dts.Events.FireInformation(0, String.Empty, String.Format _
("Downloading '{1}' from '{0}'", WebUrl, Dateiname), _
String.Empty, 0, fireagain)
' Download durchführen
myWebClient.Credentials = CredentialCache.DefaultCredentials
myWebClient.DownloadFile(WebUrl, Dateiname)
Dts.TaskResult = ScriptResults.Success
Catch ex As Exception
' Fehlermeldung senden
Dts.Events.FireError(0, String.Empty, ex.Message, String.Empty, 0)
Dts.TaskResult = ScriptResults.Failure
End Try
End Sub
End Class
Damit das ganze entsprechend konfigurierbar ist, habe ich die WebUrl in eine Variable gepackt und über die Paketkonfiguration änderbar gemacht. Das Ziel des Downloads ist bei mir ein Verzeichnis auf dem Reportserver selber, um keine weiteren Abhängigkeiten ins Spiel zu bringen. Nun kann ich ohne grosse Änderung eine auf dem Reportserver vorhandene Datei (ich lade immer ein dort vorhandenes PDF herunter) zeitgesteuert herunterladen und damit dem Reportserver für den Tagesbetrieb aufwecken.
Print article | This entry was posted by cmu on 12.04.11 at 14:40:00 . Follow any responses to this post through RSS 2.0. |