SSRSレポートサーバーに100を超えるレポートがあります。それらすべてのキャッシュを有効にする必要があります。現在、すべてのレポートのレポートマネージャーを介してキャッシュを有効にしています。
レポートサーバーの構成ファイルにキャッシュを追加できますか?これにより、すべてのレポートのキャッシュを1か所で有効にできます。
どんな助けでもありがたいです
ありがとうAJ
SSRSレポートサーバーに100を超えるレポートがあります。それらすべてのキャッシュを有効にする必要があります。現在、すべてのレポートのレポートマネージャーを介してキャッシュを有効にしています。
レポートサーバーの構成ファイルにキャッシュを追加できますか?これにより、すべてのレポートのキャッシュを1か所で有効にできます。
どんな助けでもありがたいです
ありがとうAJ
以下は、レポートのリストで数分でキャッシュを有効にするために使用したスクリプトです。
setreportscaching.rss として保存し、コマンド ラインから実行します。
rs.exe -i setreportscaching.rss -e Mgmt2010 -t -s http://mySsrsBox:8080/ReportServer -v ReportNamesList="OneReport,AnotherReport,YetAnotherOne" -v CacheTimeMinutes="333" -v TargetFolder="ReportsFolderOnServer"
レポートのcsvリストを取得するのではなく、一部のフォルダー内のファイルをループするように変更するのは簡単です。スピードのためにコメントアウトできるばかげた診断の一部があります。
Public Sub Main()
Dim reportNames As String() = Nothing
Dim reportName As String
Dim texp As TimeExpiration
Dim reportPath As String
Console.WriteLine("Looping through reports: {0}", ReportNamesList)
reportNames = ReportNamesList.Split(","c)
For Each reportName In reportNames
texp = New TimeExpiration()
texp.Minutes = CacheTimeMinutes
reportPath = "/" + TargetFolder + "/" + reportName
'feel free to comment out this diagnostics to speed things up
Console.WriteLine("Current caching for " + reportName + DisplayReportCachingSettings(reportPath))
'this call sets desired caching option
rs.SetCacheOptions(reportPath, true, texp)
'feel free to comment out this diagnostics to speed things up
Console.WriteLine("New caching for " + reportName + DisplayReportCachingSettings(reportPath))
Next
End Sub
Private Function DisplayReportCachingSettings(reportPath as string)
Dim isCacheSet As Boolean
Dim expItem As ExpirationDefinition = New ExpirationDefinition()
Dim theResult As String
isCacheSet = rs.GetCacheOptions(reportPath, expItem)
If isCacheSet = false Or expItem is Nothing Then
theResult = " is not defined."
Else
If expItem.GetType.Name = "TimeExpiration" Then
theResult = " is " + (CType(expItem, TimeExpiration)).Minutes.ToString() + " minutes."
ElseIf expItem.GetType.Name = "ScheduleExpiration" Then
theResult = " is a schedule"
Else
theResult = " is " + expItem.GetType.Name
End If
End If
DisplayReportCachingSettings = theResult
End Function