Wednesday, March 28, 2012

rsExecutionNotFound

I can preview a report I've written in VS (BIDS) without error. However, when I've deployed it to the report server, I'm unable to execute the report. I receive the following error:

Reporting Services Error

Execution 'ucv5xtu2x2uvhfjmjkfmfy45' cannot be found (rsExecutionNotFound)

SQL Server Reporting Services

The report contains a chart that RS is rendering. Does something need to be turned on or is the error unrelated to charting? In any event, I'm stumped. Any ideas would be greatly appreciated!

What are you using to view the report? The HTML viewer? What happens if you close IE and try to render it again?|||i have the same error and when i close IE and try to render it again it's work fine|||

I have the same problem when I attempt to run a report with a non-admin user, when the report has no parameters.

When the error appears on screen, I can refresh and the report loads find.

I am using Forms Authentication with my own report list and report parameters screens. I launch a report via URL. If I copy/paste the URL to a (logged in) browser window (ctrl-N from the report parameters screen) then the report runs fine. If I launch the report from my app (window.open(url)) then I get the error mentioned above.

Any ideas?

Thanks

|||

Can you please provide the URL that you are trying to launch?

These "execution not found" errors occur usually because your session has expired due to inactivity. If you are using the viewer controls, then you shouldn't see this happen in normal circumstances because it should automatically cause postbacks at intervals which are quick enough to keep your session alive. If you aren't using the viewer control, but directly rendering from the ReportServer virtual directory and specifying rc:toolbar=false, then you don't get any of the cool "keepalive" functionality because you have opted out of using the viewer control.

|||

Hi John. Thanks for the post.

Here is the URL I put together in my web form and pass to RS (I broke it out onto seperate lines here because it didn't seem to want to paste correctly):

http://[server name]/ReportServer/Pages/ReportViewer.aspx?

/Galactic%20Delivery%20Services/Chapter06/BusinessTypeDistribution

&rs:Format=HTML4.0

&rc:Parameters=true

&rc:Toolbar=true

I build a custom list of reports (ListChildren), each report name is a link to a custom report parameter form (GetReportParameters) with a dropdown list of extentions (HTML, PDF, etc). If the selected report has no parameters, I bypass the parameters form and launch the report in the same browser window. The parameter-less reports are the problem and the problem has been sporadic. Sometimes the report loads sometimes I get the rsExecutionNotFound error. I seem to have gotten around the problem for the most part by launching the report in a new browser window, now I rarely get the rsExecutionNotFound error. However, when I went to get the report URL (above) I got the rsExecutionNotFound error again. I closed the browser windows and tried again. The report ran fine. Session thing?

The thing I don't quite get is that I execute LogonUser and regenerate the cookie from each page (I pass a unique value that is an GUID used to validate the user in our own security database). Does this not refresh the RS session?

To test, I have a HTML form with a dropdown list of usernames (admin, limited, etc). Most of the time, the "admin" user will work directly after the "limited" user fails (meaning, I click the report link and the report fails: I click the report link again with "admin" selected and it works). Specifying rs:Format=PDF works EVERY time, even directly after a failure (meaning, I click the report link and the report fails: I click the report link again with PDF selected and it works). It appears that the error only occurs when I attempt to run an HTML version of the report.

The report list page and the report parameter page live on the RS server.

Again, thanks for your post. My app (which is still in prototype mode) seems to be working fairly well. I would like to be able to trap this (and other) error so the user doesn't get this nasty message. Better yet, I'd like to understand the error and be able to prevent it.

-- WALL

|||

I talked with a couple other folks here on the team, and we think what you are hitting is that the HTML for the report is being cached by IE, which is causing the session to not be appropriately handled.

You can workaround this issue by adding a parameter to the URL which will be ignored by RS, but will "uniqueify" the URL so that you don't run into the caching problems. Try appending rc:UniqueGuid=<newguid> to the url and see if that works around your problem.

-john

|||

Interesting. I'll try your suggestion as soon as I get a moment.

Thank you for the (very quick) response.

-- wall (I happened to log in to this forum as xguy this time)

|||

We are seeing the same problem in our environment. We have tried adding the GUID parameter and it reduced the frequency of the problem, but we are still seeing the reExecutionNotFound error 8-10 times per day.

Suggestions? A post in another forum suggested that this problem is fixed somewhere, but did not give any info on the solution.

Thanks.

|||

How are you accessing the server? SOAP? URL Access? Are you using the viewer control or a custom application? Are you getting this error when rendering the report, or when retrieving images?

If it is a custom application that is not using the viewer control, then you will need to ensure that your session is not timing out by periodically "touching" the session. The viewer controls do this by calling GetExecutionInfo() on the SOAP endpoint.

|||

Thanks for the reply, John. Here is my developer's response (I'm the DBA in charge of the server):
"We are using the ReportViewer control and accessing remote reports on the reporting server, therefore, I believe it is making SOAP calls. They should know. During rendering, we get the Out Of Memory error within the ReportViewer. I never call GetExecutionInfo() from the ReportViewer control, do we have any examples? When should I call the method, before assigning parameters, after, etc..."

Any guidance is welcome. The web server we are running this on is Windows 2003 Standard SP1, dual 2.8GHz Xeon processors with 2GB of RAM. It is running IIS 6.0 and Reporting Services 2005 (the ReportServer databases are on a different server). We are running web apps with both ASP.NET 1.1.4322 and 2.0.50727, obviously in separate application pools.

Thanks,
Kevin

|||

Out of memory is a different error than execution not found.

If you are using the viewer controls then you don't have to call GetExecutionInfo() yourself, the viewer control does this periodically to "ping" the server and keep your session alive all by itself.

Check Tudor's blog for some tips on improving performance:

http://blogs.msdn.com/tudortr/archive/2004/06/28/167969.aspx

The biggest thing you can do to reduce the amount of memory being used is to reduce the # of rows that your data sets are returning.

|||

Sorry for the confusion, John. We are actually seeing two different problems, one of which is the rsExecutionNotFound which doesn't seem to have any pattern, the other is the OutOfMemory exception that we are seeing on large reports.

Regarding the the rsExecutionNotFound error, after we added the GUID report parameter, we saw the frequency of the error decline, but not disappear completely. Do you have any other suggestions to resolve this?

Thanks again,
Kevin

|||

Hi Kevin. I have not put our reporting services apps into production yet (other projects have taken priority) but we have tested quite a bit and launching the reports in a new browser window seems to have made the rsExecutionNotFound error go away (knock on wood).

We use custom report listing forms and custom (selected) report parameter forms. We launch HTML forms in a new browser window and launch PDF (and other formats) in an iframe on the same form -- each method results in a new window opening.

Hope that helps.

Good luck.

|||

What if you get the rsExecutionNotFound error by just using your web browser to access the report? In this situation it was reporting services that generated the url and we have no way of adding anything to it.

Why can the report not be executed again when the expected execution is missing and the end user did not sepecifically request a particular execution?

Additionally, why is there a nasty exception in response to a "inappropriate handling" of a session? When you said "not be appropriately handled" did you mean that IE is allowing the session to time out and it should not be?

No comments:

Post a Comment