SQL SSRS Sessions Test

Each report session is associated with a single, requesting consumer client for a given report. The report session setting represents a modifiable duration of time within which a report server is allowed to serve report requests 1) from the same consumer client, and 2) from the same intermediate format that has been cached on the server.

When a client makes a report request, the retrieved data and report layout are merged into intermediate format, and stored in the session cache. The intermediate format within the cache can be rendered multiple times, in multiple formats, within the duration of the report session.

To assure users of a consistent viewing experience during a single browser session, administrators must make sure that report session caching is configured correctly and is used effectively.

Another mode of caching that is widely used is Snapshot caching. With Snapshot caching, a single intermediate format file “version” is stored in the ReportServerDB database. Once a Snapshot-configured report has been executed, and an instance of its intermediate format is available in the SnapshotData table of the ReportServerDB database, the cached instance of the report is shared between the first client who requests the report and other clients that later request the same report. Because snapshot reports are generated from intermediate files and are shared by multiple clients, they enhance the reporting performance of large, complex reports. To ensure peak reporting performance at all times, it is imperative that administrators configure and schedule snapshot reporting correctly.

Using the SQL SSRS Sessions test, administrators can evaluate the effectiveness of session and snapshot caching, and can figure out whether the configuration of these caching modes need to be tweaked to improve performance.

This test tracks the user sessions to the report server and reports the count of new sessions accessing reports from the cache. This way, the test reveals how well the cache is used. Additionally, the test also reports the rate at which requests are received for reports that are open in an existing session. This is a good indicator of how snapshot reporting helps.

Target of the test : A Microsoft SQL Server Reporting Services server

Agent deploying the test : A remote agent

Outputs of the test : One set of results for the report server being monitored

Configurable parameters for the test
Parameters Description

Test period

How often should the test be executed

Host

The host for which the test is to be configured.

Port

The port at which the specified Host listens.

Instance

The name of a specific SQL Report server instance to be monitored. The default value of this parameter is “default”. However, if the Microsoft SQL Server hosting the SQL Reporting Server database uses named instances, then do the following:

  • Configure the Instance parameter with the name of the SQL Server instance that hosts the SQL Report Server database.
  • Do not change the default value of the Port parameter

Is Passive

If the value chosen is Yes, then the Microsoft SQL server (hosting the SQL report server database) under consideration is a passive server in a SQL cluster. No alerts will be generated if the server is not running. Measures will be reported as “Not applicable’ by the agent if the server is not up.

 

Measurements made by the test
Measurement Description Measurement Unit Interpretation

Active sessions

Indicates the count of sessions that are currently active on the report server.

Number

This is a good measure of the current workload of the report server.

New sessions

Indicates the rate at which new sessions are serviced by the report session cache.

Sessions/Sec

A high value is indicative of optimal usage of the session cache.

A low value or a consistent decrease in the value indicates that the session cache is unable to service new sessions.

This could be owing to a low session timeout setting. If a session times out quickly, it will not be able to servicevice report requests coming in within the session duration. Under such circumstances, you may want to consider increasing the session timeout setting.

Existing report requests

Indicates the number of requests per second for reports that are open in an existing session (such as reports that are rendered from a session snapshot).

Requests/Sec

This is a good indicator of how well snapshot caching is used.