[SSRS Troubleshooting] SQL Server Reporting Services トラブルシューティングのご案内

山崎 実久
SQL Server Developer Support Engineer

 

以前、[SQL Troubleshooting] SQL Server トラブルシューティング 6 回シリーズのご案内 で、SQL Server Engine 側で発生する問題について、基本的な切り分け方法をご案内しました。

今回は、SQL Server Reporting Services (SSRS) のトラブルシューティングに必要な情報採取項目について本 blog でご案内します。

SSRS に関して問題が発生した場合、以下の 8 つの情報を採取、確認し、2 以降のログに対して、問題が発生した日時に関連するエラーが記録されていないか確認します。

1.  Reporting Services のバージョンの確認 2.  イベントログ(アプリケーション、システム、セキュリティ) の確認 3.  Reporting Services ログの確認 4.  Reporting Services の詳細ログ 5.  HTTP ログ 6.  実行ログ executionlog 7.  パフォーマンスログ 8.  SQL Profiler による情報採取

 

 

 

 

 

 

 

1. Reporting Services のバージョンの確認
============================
Reporting Services のバージョンを確認し、SQL Server 最新モジュールと照らし合わせ、最新でない場合は、最新のモジュールを適用します。少なくとも最新のサービスパックが適用されていることを確認します。最新のサービスパック、もしくは修正モジュールを適用しても、問題が解消されない場合、2. 以降に記載の情報 を採取し確認します。
本記事作成時の最新のモジュール情報は、SQL Server の最新モジュール情報 (まとめページ) で確認することが可能です。SQL Server の最新モジュールは本 blog で毎月公開しています。

1-1. レポートサーバーから確認する方法
----------------------------------------------
1) Reporting Services がインストールされているマシンからブラウザを起動します。
2) 次のようにブラウザからアクセスし、画面の一番下に表示される SQL Server Reporting Services の詳細バージョンを確認します。

Reporting Services 2005
------------------------
  既定のインスタンスの場合 : https://localhost/reportserver
  名前付きインスタンスの場合: https://localhost/reportserver$<インスタンス名>
 
Reporting Services 2008 以降
---------------------------
  既定のインスタンスの場合 : https://localhost/reportserver
  名前付きインスタンスの場合: https://localhost/reportserver_<インスタンス名>
 
上記のように指定しますと、以下の様にバージョン情報が表示されます。

  例) Microsoft SQL Server Reporting Services Version 10.0.4000.0

 

上記以外に、SQL Server 2008 以降のバージョンでは、インストールセンターを利用し、バージョンを確認します。この方法を利用すると Reporting Services 以外のバージョンも確認できます。

1-2. インストールセンターから確認する方法
----------------------------------------------
SQL Server 2008 R2 の場合の例を記載します。お使いの SQL Server のバージョンに合せて確認します。

- SQL Server 2008 R2 の場合
1) [スタート] メニューから、[Microsoft SQL Server 2008 R2] - [構成ツール] - [SQL Server インストール センター] を選択します。
2) SQL Server インストールセンター画面の左部にて、[ツール] を選択し、画面右部から [インストール済み SQL Server 機能の検出レポート] を選択します。
3) 各サービスのバージョン情報の詳細情報がブラウザに表示されます。Web ページを「Web アーカイブ、単一のファイル (*.mht)」形式で保存し、確認します。

その他、以下の方法でもバージョンを確認することができます。

1-3. インストールされている exe から確認する方法
---------------------------------------------------------------------------------------
1) 既定で下記フォルダにある exe ファイルを右クリックにて選択しプロパティをクリックします。

 
Reporting Services 2005
------------------------
<\Program Files\Microsoft SQL Server\MSSQL.n\ReportingServices\ReportServer\bin\ReportingServicesService.exe>

 ※ MSSQL.n の n は整数値で、複数のインスタンスがインストールされている場合、対象のインスタンスと MSSQL.n は次のレジストリで確認します。

\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQLServer\Instance Names\SQL

Reporting Services 2008
----------------------
<\Program Files\Microsoft SQL Server\MSRS10.<インスタンス名>\ReportingServices\ReportServer\bin\ReportingServicesService.exe>

Reporting Services 2008 R2
---------------------------
<\Program Files\Microsoft SQL Server\MSRS10_50.<インスタンス名>\ReportingServices\ReportServer\bin\ReportingServicesService.exe>

Reporting Services 2012
---------------------------
<\Program Files\Microsoft SQL Server\MSRS11.<インスタンス名>\ReportingServices\ReportServer\bin\ReportingServicesService.exe> 

 

 2. イベントログ(アプリケーション、システム、セキュリティ) の確認
====================
イベントログ(アプリケーション、システム、セキュリティ) の確認方法は、以前本ブログ [SQL Troubleshooting] 第1回 : Tips - SQL Server エラーログとイベント ログを採取する (SQL 2000 ~ 2008 R2) で確認します。

 

3. Reporting Services ログの確認
======================
SQL Server 2005, SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 のそれぞれのバージョンごとに Reporting Services ログの確認手順を記載します。

-- SQL Server 2005

Reporting Services のインストール フォルダ下の LogFiles フォルダ配下に出力されるファイルを確認します。
既定では、MSSQL.n 下の Reporting Services フォルダにインストールされます。

C:\Program Files\Microsoft SQL Server\MSSQL.n\Reporting Services\Log Files

※ MSSQL.n の n は整数値で、SQL Server、Analysis Services などのインストールの有無により異なります。対象のインスタンスと MSSQL.n は次のレジストリで確認します。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instancenames\RS

-- SQL Server 2008

Reporting Services のインストール フォルダ下の LogFiles フォルダ配下に出力されるファイルを確認します。
既定では、MSRS10.xxx 下の Reporting Services フォルダにインストールされます。

C:\Program Files\Microsoft SQL Server\MSRS10.xxxx\Reporting Services\LogFiles

※ MSRS10.xxxx の xxxx はインスタンス名称です。たとえば既定の C ドライブにインストールされた既定のインスタンスの場合、以下のようになります。

C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\LogFiles

-- SQL Server 2008 R2

Reporting Services のインストール フォルダ下の LogFiles フォルダ配下に出力されるファイルを確認します。
既定では、MSRS10_50.xxx 下の Reporting Services フォルダにインストールされます。

C:\Program Files\Microsoft SQL Server\MSRS10_50.xxxx\Reporting Services\LogFiles

※ MSRS10_50.xxxx の xxxx はインスタンス名称です。たとえば既定の C ドライブにインストールされた既定のインスタンスの場合、以下のようになります。

C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\LogFiles

-- SQL Server 2012

Reporting Services のインストール フォルダ下の LogFiles フォルダ配下に出力されるファイルを確認します。
既定では、MSRS11.xxx 下の Reporting Services フォルダにインストールされます。

C:\Program Files\Microsoft SQL Server\MSRS11.xxxx\Reporting Services\LogFiles

※ MSRS11.xxxx の xxxx はインスタンス名称です。たとえば既定の C ドライブにインストールされた既定のインスタンスの場合、以下のようになります。

C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER\Reporting Services\LogFiles

 

4. Reporting Services の詳細ログ
=====================
Reporting Services の詳細ログの採取方法については、以前本ブログでお伝えしました [SSRS] Reporting Services の詳細ログ を確認します。

5. HTTP ログ
========
HTTP ログの採取方法についても、以前本ブログでお伝えしました [SSRS] Reporting Services の詳細ログ を確認します。

 

6. 実行ログ
========
SQL Server 2008 以降のバージョンで実行ログを採取することができます。事象発生後、以下の手順をもとに実行結果を確認します。

1) SQL Server Management Studio で SQL Server に接続します。
2) "新しいクエリ" ボタンでクエリ入力画面を開きます。
3) Ctrl + D で実行結果をグリッド形式表示にします(既定の設定はグリッド表示です)。
4) 以下のクエリを実行し、事象発生付近の時間帯の結果を確認します。
(弊社に情報を送付いただく際は、Ctrl+Shift+F で実行結果を CSV ファイルに保存いただきご提供ください)

-- SQL Server 2005 の場合 --
-- ここから --
Use ReportServer
go
select * from ExecutionLog order by TimeStart DESC
--------------

-- SQL Server 2008 の場合 --
-- ここから --
Use ReportServer
go
select * from ExecutionLog2 order by TimeStart DESC
--------------

-- SQL Server 2008 R2 以降の場合 --
-- ここから --
Use ReportServer
go
select * from ExecutionLog3 order by TimeStart DESC
--------------

+ 参考情報
-- SQL Server 2005
レポート サーバー実行ログ
"https://msdn.microsoft.com/ja-jp/library/ms159110(v=sql.90).aspx"

-- SQL Server 2008
レポート サーバー実行ログ
"https://msdn.microsoft.com/ja-jp/library/ms159110(v=sql.100).aspx"

-- SQL Server 2008 R2
レポート サーバー実行ログと ExecutionLog3 ビュー
"https://msdn.microsoft.com/ja-jp/library/ms159110(v=sql.105).aspx"

-- SQL Server 2012
レポート サーバー実行ログと ExecutionLog3 ビュー
"https://msdn.microsoft.com/ja-jp/library/ms159110(v=sql.110).aspx"

7. パフォーマンスログ
==================
パフォーマンスログの採取方法および解析方法は、以前以下のブログでお伝えいたしました内容を確認し、情報採取を行います。

[SQL Troubleshooting] 第2回 : Tips -パフォーマンス ログの採取方法 (Windows Server 2003 ~ Windows Server 2008 R2)
[SQL Troubleshooting] 第3回 : パフォーマンスログの確認方法について

8. サーバートレースによる情報採取
==================
データソースに対してどのようなクエリが発行されているかについて確認します。
レポートのデータソースが SQL Server のデータベースを利用の際は、下記ブログに記載の手順で SQL Server サーバートレースを利用し情報を採取します。

SQL トレーススクリプトの作成、実行 (SQL Server 2005, 2008, 2008 R2)

レポートのデータソースが SQL Server Analysis Services のデータベースを利用の際は、下記ブログに記載の手順で Analysis Services サーバトレースを利用し情報を採取します。

[SSAS] SQL Server Analysis Services トレース採取方法

 

以上、SQL Server Reporting Services に関するエラー発生の際の切り分けに是非ご活用ください。