SSRS Looking for Non Existent Shared Dataset - reporting-services

What could cause one user to be initiating an old version of the report?
I have a report that runs perfectly when logged directly on the reporting services server.
When run from the LAN it gives an error that one of the parameter data sets execution failed. The error message shows that the parameter is pointing to a data set that was used in the report months ago but is no longer currently used. Looking at the properties of the report in reporting services everything is pointed to a valid shared data set.

The .rdl file has a connection string saved in it. This is what you connect to during development and it is the default connection. When you upload the file to the reporting services server, you have the option of overriding that and pointing it to a shared data source. In other words, the "old" data source has always been built into that .rdl file (you can look at the XML to confirm this), but it is being overridden on the server.
Hope this helps clear up the confusion.

Related

Why did deploying a single report also overwrite the data source?

We had a problem earlier when deploying a single report to the production environment, when, for reasons we don't understand, SSRS decided to also overwrite the Data Source associated with the report with settings that do not even match those currently in the project.
We want to understand why/how this happens, and what we need to be doing to control it - ie, what are we missing about SSRS that we need to be aware of.
The steps we took were as follows:
Before starting: This is to update an existing report, not a new report, so the Prod report server already has the Data Source and the (old) Report Definition. The Data Source (shared) does not need to be changed at all, nor do we believe we did anything that should have prompted SSRS to do so. We only intended to overwrite the old report definition with the new one.
Data Source within project modified to point to the production Sql Server source
Deployment settings within the project modified to point to the production Report Server
The single report deployed (literally by right-clicking TheReport.rdl in the Solution Explorer and then clicking Deploy). That is everything we did. We did not deploy or change anything else.
Expected result: report definition on the prod server overwritten with the new report. Data Source completely unchanged, because why would it be? We didn't deploy that (and in any case, the one in the project is pointing to prod, so it shouldn't even matter if it did)
Actual result: Report overwritten as expected. Data Source also overwritten... with the old dev settings. Not the ones currently in the project. All the other reports sharing this data source suddenly stop working or display dev server data.
What are we doing wrong? SSRS quietly overwriting the associated Data Source on the server when deploying a single report seems dangerous (we would likely have missed that it had even happened, had the data on these particular dev and live environments been similar enough) so I presume we are missing something we should be doing/checking when deploying reports, but are at a loss as to exactly what.
That is configuration to copy your datasources and datasets to the report portal or not. You can change the configuration by right click on your report project and select properties that will open up the property pages. There is an option to overwrite default settings. Please check below image for more details
By using the above configuration it will deploy dataset and data sources on SSRS server only if it is not exists on the server.
Hope this will work.

Power BI Report Server - Shared Dataset Doesn't Save

Data Source missing
Data Source,tried to save
The issue is when I hit save to connect to a shared data source it doesn't save. When I run the report and get the below error. Then go back and the shared data source is gone. I can see that the link and extensions are null. Please help :-)
The report server cannot process the report or shared dataset. The shared data source 'SSAS_PRN' for the report server is not valid.
Problem = There was many different versions of the same data sets.
The solution was to wipe out all of them, then start fresh.
Then in Report builder.
Under the data Sources Properties.
Browse to the new version.
Hit save.
The report now works on the server.

SSRS Reports location when being deployed

I'm just helping out while our regular SSRS guy is away and having an issue.
There is currently a very large report that's being generated. The subscription settings for this report is to ftp the report. The Subscription status for the report currently says "Processing delivery...". I assume this to mean that it finished generating and is now trying to send the file to the ftp location. I can see that the file is there in the ftp folder but the size is still 0kb. It has been saying "Processing delivery..." for a long time now.
My question is: Is there a location (folder or sql table) I can check to see if ssrs is actually doing something? I assume it would create temporary file somewhere locally first before sending it on its way.
Check the ExecutionLog views in the ReportServer DB of your SQL Instance. There are three views which show everything from the requested format to start time, complete times, and parameters used. Take a look at the time difference between start and complete for previous runs and compare it to the running time of the current report whose complete time will be null if it is still processing.
For bonus points: setup a SSRS report based on the view and set a subscription for daily email delivery. This saves a TON of time when troubleshooting reports where users can't tell you the parameters they use or the morning reports are empty, etc.
Also, funny as it sounds, you might want to check the free space on the server that the report is output to. With no free space the report will show processing delivery for a long time. If it's FTP and you don't have control of the FTP server, still might be worth the quick phone call.

How can I add an embedded data source to RDL in C# code?

I am trying to use SSRS in a multi-tenant situation. The base version we want to support is SQL Server 2008 but if R2 is needed we might be ok with that.
I am currently using the ReportingService2005.asmx endpoint which seems to expose the ReportService2005SoapClient class (even though all samples seem to show ReportingService2005 class).
When we run a report I want to make a copy of that report from the server, add an embedded datasource, point the datasets to that datasource and then run the report.
I have gotten as far as:
getting the RDL from the server
modifying the XML to add the DataSource
pointing the datasets to point to the new datasource
...but when I try to "CreateReport" I get the following error:
System.Web.Services.Protocols.SoapException: The dataset ‘DataSet1’ refers to the data source “mydatasource_LOCAL”, which does not exist.
at Microsoft.ReportingServices.Library.ReportingService2005Impl.ExecuteBatch(Guid batchId)
at Microsoft.ReportingServices.WebServer.ReportingService2005.ExecuteBatch()
I have added the dataset to the RDL, it looks the same as when I add one in the designer. However, I assume something needs to be added to the server? What am I missing?
(As an aside, I know MS Dynamics enabled multi-tennant SSRS in a single instance, but I see no info on how they did it. If they have any code or anything they share someone could point me to that would be awesome.)
You're using the correct endpoint, more or less. From MSDN:
The ReportService2005 and ReportService2006 endpoints are deprecated in SQL Server 2008 R2. The ReportService2010 endpoint includes the functionalities of both endpoints and contains additional management features.
In any case, you mention you modify the RDL to use a new data source in step 2. I might be wrong, but I think you probably still need to add a DataSource item to your report catalog using the ReportingService2010 CreateDataSource(...) method.
If you deploy a new report from Visual Studio to report server it wil also mention in the log that it's deploying the data source before it deploys the report.
Of course you could also create that data source on the server beforehand, using the report manager (though "mydatasource_LOCAL" may not be an ideal name).

SSRS 2008 Credentials used to run this report are not stored

I created a report in SSRS, and deployed it. I went to the properties of the report the Process option, and tried to set up Cache a temporary copy of the report and got an error 'Credentials used to run this report are not stored.' I get the same error if I go to Snapshot Options and try to select any of the options there.
Thanks in advance
As per the error, you need to set up the report Data Source similar to the following:
If you're not storing credentials you cannot cache reports or create snapshots.
With cached reports, a temporary copy is created when a user runs a report and this can be used for subsequent runs of the report. Since this could be performed by different users, the only way this can work is if the same connection is used to the Data Source each time; it must be independent of whoever is running the report when the copy is cached.
Same principle for snapshots; no guarantee who will run reports based off the snapshot, so the Data Source connection must be independent of the user running the report, i.e. stored at the Data Source level.