0
votes

We've got some data driven subscriptions running on SSRS. Sometimes they take an unusually long time to complete, if I check the activity on the server I find that things are relatively quite.

What I did notice is that in the ReportServer database on the Notification table there's a column called ProcessAfter. Sometimes this value is set about 15 minutes into the future, and the subscription only completes after the time stated in that column.

What is setting this value? Since this behaviour is relatively rare.

1

1 Answers

1
votes

After a few days I posted this question here, and got an answer:

When a subscription runs, there are several things happen: The SQL Server Agent job fires and puts a row in the Event table in the RS catalog with the settings necessary to process the subscription. The RS server service has a limited number of threads (2 per CPU) that poll the Event table every few seconds looking for subscriptions to process. When it finds an event, it puts a row in the Notifications table and starts processing the subscription.

The only reason that rows would stay in the Notification table is that the RS service event processing threads are not processing the events. As per my understanding, the NotificationEntered column stores the time when the notification enters. Delivery extension provide some settings for specifies the number of times a report server will retry a delivery if the first attempt does not succeed (MaxRetries property) and specifies the interval of time (in seconds) between each retry attempt (SecondsBeforeRetry property). The default value for SecondsBeforeRetry is 900 seconds, means 15 minutes. When the delivery fails, it retry attempts every 15 minutes.

Reference: Monitoring and Troubleshooting Subscriptions Delivery Extension(s) General configuration

If there are any other questions, please feel free to let me know.

Thanks, Katherine Xiong

I found the Extension(s) General Configuration link especially helpful