Orbis Knowledge Base

SQL Server Reporting Services: The report execution [Naam] has expired or cannot be found.

Categorieën

Vragen?

Heb je een vraag voor onze supportafdeling? Ga dan naar onze portal en stel ze gerust!

Symptomen

Bij het uitvoeren van een SQL Server Reporting Services rapport met de “Run MS Reporting Services Report” tool binnen BPA Platform kan de melding “The report execution [Naam] has expired or cannot be found.” optreden. Onderstaande symptomen treden hierbij op:

Symptomen

  • Het handmatig uitvoeren van het rapport buiten de BPA Platform taak werkt correct.
  • Er wordt gebruik gemaakt van impersonation op Taak en / of BPA Platform niveau.
  • Deze melding is van het type “System.Web.Services.Protocols.SoapException”.
  • De [naam] uit de foutmelding heeft een formaat dat lijkt op “gy1c5ira3q2searymgfp2jft” en is bij iedere uitvoerpoging anders.
  • De SSRS stap wordt in de “Run Report on a Microsoft report server” modus uitgevoerd.

Wanneer deze symptomen optreden is dit knowledge base artikel van toepassing op het probleem.

Oorzaak

Wanneer een SSRS rapport op een Microsoft Report Server uitgevoerd wordt, wordt voor ieder verzoek een rapportaanvraag (“report execution”) in de SSRS database aangemaakt. Binnen deze aanvraag staan onder andere het aangevraagde rapport, de parameters en account geregistreerd welke deze aanvraag doorgestuurd heeft. Per aanvraag wordt een unieke code gegenereerd die deze aanvraag in de database voorstelt.Wanneer een rapport niet gegenereerd kan worden, heeft dit twee bekende oorzaken.

De uitvoerende account van BPA Platform mag het gegenereerde rapport niet ophalen.

Rapport aanvragen zijn gebruiker specifiek en afgeschermd voor andere gebruikers. Een rapportaanvraag welke door gebruiker A aangeboden wordt kan niet door gebruiker B opgehaald worden, zelfs niet als gebruiker B op de hoogte is van de unieke code van de aanvraag.

Binnen BPA Platform kan deze situatie optreden als gebruik gemaakt wordt van impersonation op taak of BPA Platform niveau. Deze impersonation wordt niet meegegeven bij het aanbieden van de aanvraag aan de report server, maar wel bij het ophalen van het rapport. Hierdoor ontstaat een situatie waarbij een rapportaanvraag wordt opgehaald door een andere gebruiker dan de gebruiker welke de aanvraag ingediend heeft. In deze situatie wordt de aanvraag ingediend door de gebruiker die op de BPA Platform Server Service ingesteld staat – wanneer dit niet aangepast is, is dit standaard de LOCAL SYSTEM gebruiker.

De report execution is verlopen voordat Taskcentre het resultaat op kan halen.

Een Report Execution binnen SSRS wordt standaard 20 minuten bewaard, hoewel deze tijdspanne in de instellingen van SSRS indien gewenst aangepast kan worden. Dit betekend dat een rapport na uitvoer standaard maximaal 20 minuten bewaard wordt. In twee gevallen kan dit problemen veroorzaken:

  1. Bij het uitvoeren van een SSRS stap binnen BPA Platform, worden eerst alle rapporten aangeboden en gegenereerd voordat de resultaten opgehaald worden. Bij grote rapportbatches kan dit ertoe leiden dat de onderliggende execution van het eerste uitgevoerde rapport reeds verlopen is.
  2. Wanneer er een afwijking is tussen de systeemtijd van de server waarop de BPA Platform Server Service draait en de server waarop de SSRS Reporting Services draaien, kan een report execution een verloopdatum krijgen welke voor de huidige systeemtijd ligt. Als gevolg daarvan wordt het rapport nooit uitgevoerd.

In beide gevallen is het resultaat dat BPA Platform een resultaat van een Execution probeert op te vragen welke niet door SSRS gevonden kan worden.

Oplossing

Dit probleem kan verholpen worden door te garanderen dat een rapport door dezelfde gebruiker aangeboden en uitgevoerd wordt:

  • Maak geen gebruik van Impersonation op taak of BPA Platform niveau bij taken die een SSRS stap bevatten.
  • Indien impersonation noodzakelijk is kan deze enkel op BPA Platform Server Service niveau meegegeven worden.

Voor problemen gerelateerd aan de levensduur van de Execution kunnen onderstaande acties ondernomen worden.

  1. Voer het genereren van SSRS rapporten in batches uit, bijvoorbeeld door per taakrun maximaal 50 rapporten te genereren. Dit garandeert dat de eerste rapportuitvoer nooit verlopen kan zijn op het moment dat BPA Platform het resultaat hiervan ophaalt.
  2. Zorg ervoor dat de systeemtijd tussen de server waar SSRS en BPA Platform draaien gelijk is. Mocht een issue met de systeemtijd aanwezig zijn op de SSRS Server, dan dient na het aanpassing van de tijd de “SQL Server Reporting Service” herstart te worden om deze wijziging ook binnen SSRS door te voeren.
Orbis