web-dev-qa-db-ja.com

ReportingServicesレポートのタイムアウト

2005年のレポートは2〜約250ページで、平均は10ページです。レポートが作成されたとき、開発者は10ページ程度が適切な数であり、ビジネスドメインをあまり知らなくても適切であると言われました。彼は、レポートサービスが正しいアプローチであると判断しました。

レポートがPRODに展開されたので、レポートのタイムアウトについていくつかの苦情があります。要求されているレポートのサイズ(250ページ)を考えると、開発者も私もこれについてはそれほど驚いていません。

私の質問は、95%の時間で機能し、残りの5%で機能する現在のレポートを使用するために、どのようなオプションが必要かということです。レンダリングパフォーマンスなどを改善するための構成オプションはどこかにありますか?

レポートは返品承認に使用されるため、返品のサイズは非常に大きくなります。各承認ページには、ロゴとバーコードが付いた4つの異なる返品ラベルがあります。

明確にするために:

レポートは、レポートサービスからレポートビューアにかなり迅速にレンダリングされますが、PDFにエクスポートする場合は、ロードに時間がかかる場合です。

13
RSolberg

SSRSのレポートごとにレポート実行タイムアウト設定があります。デフォルトでは、デフォルトのシステム設定を使用するように設定されていますが、レポートマネージャーまたはSSMSを使用してカスタマイズできます。

データベースコマンドのタイムアウトではありませんか?これは接続文字列で調整できます。非効率的なのはレポートですか、それともクエリですか? SSRSレポートの250ページは、それほど悪くはありません。非常に大きなレポートを頻繁に実行します。 SSRSは、実際には、使用している他のほとんどのレポートエンジンよりも優れています。

3
DCNYAM

次のいずれかをいじることができます。

1)SessionTimeoutおよびSessionAccessTimeoutシステムプロパティを変更します。

これらの値を設定するrs.exeのサンプルスクリプトを次に示します。

Public Sub Main()
    Dim props() as [Property]
    props = new [Property] () { new [Property](), new [Property]() }

    props(0).Name = "SessionTimeout"
    props(0).Value = timeout

    props(1).Name = "SessionAccessTimeout"
    props(1).Value = timeout

    rs.SetSystemProperties(props)
End Sub 

このスクリプトは、次のコマンドで実行できます。

rs -i sessionTimeout.rss -s http://yourserver.com/reportserver -v timeout="6000"

タイムアウトは秒単位で表されるため、この例では、SessionTimeoutとSessionAccessTimeoutsを約1時間半に設定します。

(経由 http://blogs.msdn.com/b/jgalla/archive/2006/10/11/session-timeout-during-execution.aspx

2)レポートマネージャーを使用してレポート実行タイムアウトを変更するレポートマネージャーを開くページの上部にある[サイトの設定]をクリックします。これにより、サイトの[一般プロパティ]ページが開きます。

レポート実行タイムアウトレポート処理が特定の秒数後にタイムアウトするかどうかを指定します。 (経由 http://msdn.Microsoft.com/en-us/library/ms181194.aspx

3)HttpRuntime ExecutionTimeoutを設定します

  1. [スタート]-> [管理ツール]-> [インターネットインフォメーションサービス]に移動して、ReportServerのWeb.configファイルを開きます。
  2. そこから、[Webサイト]-> [デフォルトのWebサイト]を展開し、[ReportServer]をクリックします。右側のペインで、[Web.Config]を右クリックし、[開く]を選択します。
  3. HttpRuntimeパラメーターを見つけます。存在しない場合は、セクション内で作成する必要があります。
  4. 以下に示すように、executionTimeout値を「10800」(3時間)に設定します。
<system.web>
    <httpRuntime executionTimeout = "10800" />
</system.web>

4)レポートサーバーのスクリプトタイムアウトを増やします

  1. レポートサーバーに移動し、インターネットインフォメーションサービスを開きます。 ReportServerを右クリックして、[プロパティ]を選択します。
  2. [オプション]タブに移動し、ASPスクリプトのタイムアウトを300秒に設定します(これは実際には機能しませんでした)。

5)サーバーでタイムアウトしないようにレポートを設定します

  1. サーバーでWebブラウザーを開き、 http://yourserver.com/Reports に移動します。
  2. レポートの場所に移動し、問題レポートをクリックします。
  3. 左側のペインで、[プロパティ]をクリックします。
  4. [レポート実行タイムアウト]で、[レポート実行をタイムアウトしない]をクリックします。 (経由 http://geekswithblogs.net/ssrs/archive/2009/10/30/steps-to-resolve-ssrs-timeout-issues.aspx
20
Ryan Shripat