We have a series of subscriptions on SSRS that email out reports in Excel format every 30 minutes. I have edited these via SQL Server Agent in Management Studio so the schedule only runs between certain times on weekdays only - as I don't believe this is possible via SSRS.
One particular subscription, a couple of times a day, reverts back to running once per week at 8:00 on Mondays. I then have to edit the schedule again. No errors occur and it does work for a few hours at a time.
I imagine it's related to me editing the schedule via the 'back-end' but all the other similar subscriptions where I have done the same work fine.
Can anybody suggest where I should be looking to investigate this? What other detail would be useful to help to resolve this issue?
Related
Shortly, is it possible to recover the report that was generated by SSRS when SMTP fails?
Sometimes we have network problems with SMTP and even the report was generated it couldn't be sent. We can send them manually later, but the problem is that most reports needs to be generated at a specific time, otherwise data my not be correct (for example, end of day reports needs to be generated at 12:00am, otherwise some updated numbers may not be correct. But we want to resend the report generated at 12:00am when we come to work in the morning)
I considered sending these reports though snapshots but some report subscriptions have parameters, and I couldn't find how to take snapshot for each subscription.
Any ideas?
Thanks in advance,
Onur
You could capture the data each day at 12am using a sql agent job which executes a stored procedure to populate a table/tables with the data.
If this is a report which can also be run live, you would run the report based on a hidden parameter #extract_type indicating whether or not this is live or snapshot. The default would be "live" and the subscription would pass "snapshot" for this parameter. The code in each dataset would filter based on #extract_type, perhaps through a view.
This way, the subscription could be re-run at any time of day with the same report results.
well, first you're not alone. i had issues with smtp errors in all places i worked.
there is a LastStatus column in [dbo].[Subscriptions] table. you can make a job that runs every few minutes, checks this table and restarts all subscriptions which have smtp errors.
like SQLDiver, i think it's a good idea to store the data behind reports in a table. it's not a job for a reporting tool to store your data.
We recently moved our SSRS server to a backup, but the time on the back up was in 2014.
When we noticed this, we corrected it. But all the jobs ran, and updated the Next Run time to 2014.
So none of the scheduled jobs are working now.
I triggered some of the jobs manually through the Job Activity Monitor, and the jobs run, but the Next Run time remains in 2014.
How can I correct this? I haven't found an option of manually changing the Next Run time, and I don't really want to recreate the schedules for each refresh, emailed subscription and ETL.
Update:
I found the next_run_date field in the sysjobschedules table and updated it to 2013. But it doesn't seem to update the system. When I open and refresh the Job Activity Monitor, the dates still show 2014.
Are you referring to SQL Server Agent scheduled jobs created by Reporting Services report subscriptions? If so you need to fix the date in the ReportServer database, not in SQL Server metadata (you should NEVER be updating SQL Server metadata tables manually!).
Have a look in the "Subscriptions" and "Schedule" tables in the ReportServer database to see where the 2014 date is coming from.
Our reports in SSRS stopped sending. The last report was sent 2 days ago, and was send successfully, but since then none of the reports are being sent.
If I look at the SSRS web page for each report, there is no error. Simply showing the last run time as 2 days ago, so seems it didn't even try send.
Yesterday we did make some changes. But only moving a database from the Express version, to the regular version. We did not do anything that would affect the SSRS metadata (or at least we don't think we did...)
Where should we start looking to see why the report subscriptions stopped? Is there a process that could have accidentally been disabled? Thank you!
The Report subscriptions are created as jobs for the SQL Agent. You should see a long list of jobs with GUIDs as the names. Make sure that the SQL agent jobs are running. Going through the Steps of the SQL Reporting Services Configuration tool will recreate these jobs if you were to move the Reporting Service installation to another server. (I don't recall which step recreates the subscriptions. Just go through each pane and click "Apply.")
Depending on how you move things, you may need to backup and restore encryption keys, and you can easily end up in a state where two copies of subscription exist and are executed ( on different servers.) But in your case, where you didn't move SSRS, I'd look at the SQL Agent properties on the original server (Express) to see that the SQL agent is enabled and running, and check the history of the SQL Agent jobs, to see if there are any problems.
I am wanting to create a one-time SSRS shared schedule that can be altered once run, to execute again at a future point in time. The reason I am having to set-up a subscription in this way is because I need to email a set of reports based on a bespoke accounting calendar; we don't have enterprise so data-driven is not an option.
I have tested this method in the ReportServer.dbo.Subscription and Schedule tables, but have so far not managed to get it to work. I have updated the NextRunTime and StartTime columns of the Schedule table to the time I require the reports to be sent, and this appears to update on the Report Server Shared Schedules page (Next Run) but the email does not send.
Is there another table on the ReportServer database that I need to update, or is this simply not possible?
Thanks
Andy
I suggest taking a look at the article below. It details how to set up data driven subscriptions on SQL Server Standard Edition, and goes through manually activating subscriptions via SQL Server Agent.
http://www.sqlservercentral.com/articles/Development/datadrivensubscriptions/2432/
I've used if for a couple of clients and it generally works pretty well. The only thing I've since altered is increasing the timer to 10 seconds between running each data driven report.
Regards,
Jason
In reading up on this, messing abound in the tables is not supported by Microsoft. USE AT YOUR OWN RISK!
I attempted the very same thing. When you change a subscription on the front end, the ReportServer.dbo.Schedule.StartDate column changes with each edit. I tried just altering this value, but adding a value here made no difference. There was no email and when I went back to my subscription in the SSRS webpage, the original datetime value was there. So that datetime must be stored elsewhere.
I did a SQL Trace and found these Sproc's were being called. I copied out the lines that looked promising. By changing the time value #active_start_time=160400 in the last one and running the entire batch, I could get an emailed report at the desired time. But I am not content with this; because when I go back and view My Subscriptions webpage, the original datetime is still listed.
exec msdb.dbo.sp_delete_job #job_name=N'D478A346-ED05-422D-A73E-023080AD56DD'
exec msdb.dbo.sp_add_job #job_name=N'D478A346-ED05-422D-A73E-023080AD56DD',#description=N'This job is owned by a report server process. Modifying this job could result in database incompatibilities. Use Report Manager or Management Studio to update this job.',#category_id=101
exec msdb.dbo.sp_add_jobserver #job_name=N'D478A346-ED05-422D-A73E-023080AD56DD',#server_name =N'(LOCAL)'
exec msdb.dbo.sp_add_jobstep #job_name=N'D478A346-ED05-422D-A73E-023080AD56DD',#step_name=N'D478A346-ED05-422D-A73E-023080AD56DD_step_1',#command=N'exec [ReportServer$instanceDB].dbo.AddEvent #EventType=''TimedSubscription'', #EventData=''db7d7b08-3eee-4bb8-b354-b58c653b8ab6'''
exec msdb.dbo.sp_add_jobschedule #job_name=N'D478A346-ED05-422D-A73E-023080AD56DD',#name=N'Schedule_1',#freq_type=1,#active_start_date=20180405,#active_start_time=160400,#freq_subday_type=1
Our company has a huge nasty report that takes about 50-60 minutes to run (it's for a university and lists all sorts of payment information for all students registered in courses). While it has been running each morning at 5am as a subscription, it recently stopped working and displays "An error has occurred during report processing." in the properties window for the subscription.
If I manually run the report from inside Visual Studio it will work every time, but the subscription will now always fail. I had our DBA turn on trace logging and it gave us no helpful information whatsoever. I've also set the subscription to run at different times throughout the day, with no success. The report is supposed to put an Excel file on a file share and it works for the other 5 subscriptions to this report (I have 6 subscriptions, only 1 of the 6 has a parameter set that returns values from a larger dataset). So this means that it has permission to write to the file share. Any ideas?
Could it be trying to write more than 65536 rows to the Excel file? If so it will just fail.
Also you might check the configuration for IIS to see if the report is causing a timeout.