Při použití služby SQL Server Reporting Services, může se zobrazit chybová zpráva "System.OutOfMemoryException"

Překlady článku Překlady článku
ID článku: 909678 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Při používání Microsoft SQL Server 2000 Reporting Services nebo můžete použít Microsoft SQL Server 2005 Reporting Services, můžete obdržet následující chybovou zprávu:

Aplikace na serveru došlo k vnitřní chybě.
Zobrazit protokol chyb pro více Podrobnosti. (rsInternalError) Získání Online nápovědy
Výjimka typu System.OutOfMemoryException byla vyvolána.
Kromě toho si můžete všimnout že se následující chybová zpráva zaznamenána ve vykazování serveru SQL Soubor protokolu služby nebo náhle končí protokolu:

System.OutOfMemoryException: K výjimce typu System.OutOfMemoryException byla vyvolána.
Můžete si všimnout, že jeden z následujících událostí je zaznamenána v protokolu aplikací systému Windows společnosti Microsoft:

Události 1


Program aspnet_wp.exe (PID:<pidnumber></pidnumber>) byl recyklován, protože paměť překročení spotřeby <sizelimit></sizelimit> MB (<percentage></percentage> k dispozici procent RAM).

Události 2


Proces fondu aplikací sloužící "defaultapppool" došlo závažné chybě v komunikaci s World Wide Web Služby pro publikování. Id procesu byla "9132". Datové pole obsahuje číslo chyby.

Tento problém může nastat, spolu s jedním nebo více následující příznaky:
  • Při pokusu o zobrazení sestavy, je sestava nikdy dokončeno.
  • Zobrazí se zpráva přestane reagovat.
  • Při pokusu o zobrazení sestavy je prázdná obrazovka zobrazí.
  • Zobrazí se následující chybová zpráva:

    Základní připojení ukončeno
  • Odběry nejsou doručeny.

Příčina

K tomuto problému dochází, protože počítač nemá. dostatek paměti k provedení požadované operace.

Omezení v Služby zasílání zpráv serveru SQL Server 2000 způsobí, že některé části zpracování sestavy být vázán paměti. Například dotaz zpracování výsledků a objektový model vykreslování jsou vázány paměti.

Počítač nemá dostatek paměti k dokončení požadované operace po jedné nebo více z následujících jsou-li splněny podmínky:
  • Sestava je příliš dlouhý nebo příliš složitý.
  • Režijní náklady spuštěné procesy je velmi Vysoká.
  • Fyzická paměť počítače je příliš malé.
Sestava je zpracována ve dvou etapách. Jsou dvě fáze provedení a vykreslování. Tento problém může nastat během provádění stavby nebo ve fázi vykreslování.

Pokud k tomuto problému dochází při spuštění fáze, příčinou tohoto problému pravděpodobně příliš mnoho paměti je využívána data vrácená ve výsledku dotazu. Navíc následující faktory. vliv na spotřebu paměti během provádění stavby:
  • Seskupení
  • Filtrování
  • Agregace
  • Řazení
  • Vlastní kód
Pokud k tomuto problému dochází během fáze vykreslování, příčinou je jaké informace týkající se zobrazí zprávu a jak se zobrazí v sestavě informace. Například následující faktory ovlivňují spotřebu paměti ve fázi vykreslování:
  • Počet a typy ovládacích prvků
  • Vztah mezi ovládacími prvky
  • Formátování
  • Množství dat, která je zobrazena
Další informace o součásti sestavy procesoru naleznete na následujícím webu Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/aa179471 (SQL.80) .aspx

Řešení

Chcete-li tento problém vyřešit, použijte jednu z následujících metod.

Metoda 1

Přidáte dostatečné množství fyzické paměti v počítači.

Poznámka: Pokud máte více než 2 gigabajty (GB) paměti, můžete povolit na / 3 GB Přepněte v souboru Boot.ini pro lepší výkon. Další informace o použití přepínače/3 GB v serveru SQL Server, klepněte následující článek znalostní báze Microsoft Knowledge Base:
274750Jak nakonfigurovat SQL Server k použití více než 2 GB fyzické paměti

Metoda 2

Plánování sestav počítačem nepracujete omezení paměti při spuštění nižší.

Metoda 3

Upravit MemoryLimit nastavení odpovídajícím způsobem.

Poznámka: Při vykreslování sestavy prostřednictvím webových služeb vykazování Služba webovou službou Reporting Services získá MemoryLimit Chcete-li zobrazit nastavení ze souboru Machine.config. Však plánované sestavy je vykreslen pomocí služby Windows Server zprávu. Windows Server sestavy Služba získá MemoryLimit nastavení z soubor RSReportServer.config.

Další informace informace týkající MemoryLimit nastavení naleznete v části "Další informace".

Metoda 4

Upgrade na 64bitovou verzi Microsoft SQL Server 2005 Reporting Služby.

Metoda 5

Změnit návrh sestavy. Chcete-li to provést, použijte jednu z následujících metod.

Metoda A

Změnit návrh sestavy dotazy. Je možné snížit spotřebu paměti Pracujte dotazech sestavy následujícími způsoby:
  • Vrácení méně dat v dotazech sestavy.
  • Pomocí lepší omezení v klauzuli WHERE sestavy dotazy.
  • Zdroj dat přesuňte složité agregací.

Metoda B

Exportujte sestavy do jiného formátu. Můžete snížit velikost paměti spotřeba pomocí jiný formát pro zobrazení sestavy. Následující tabulka uvádí několik formátů exportovat v pořadí od většiny spotřeby paměti nejméně spotřebu paměti.
Zmenšit tuto tabulkuRozšířit tuto tabulku
FormátPopis
Aplikace Microsoft ExcelVykreslí sestavy v aplikaci Excel
Obrázek (TIFF)Vykreslí jako statický obrázek v sestavě Formát stránky orientované
PDFVykreslí sestavy ve formátu Portable Document Format (PDF)
HTMLVykreslí zprávu ve formátu HTML do prohlížeče
CSVVykreslí sestavy ve formátu textu odděleného čárkami. na Sestava se otevře v zobrazení nástroj, který je spojen s formáty souborů CSV
XMLVykreslí sestavy ve formátu XML. Sestava se otevře v Prohlížeč
Poznámka: Pokud transformace XSLT není použita, bude tento formát spotřebují méně paměti než spotřebovává formátu CSV.

Metoda C

Zjednodušení návrhu sestavy. Je možné snížit spotřebu paměti zjednodušení návrhu sestavy následujícími způsoby:
  • Obsahují méně oblastí dat nebo ovládací prvky v Sestava.
  • Přejít na nejnižší úroveň sestavy slouží k zobrazení podrobností.
Navíc pokud účelem sestavy je nejen data kolekce, můžete další produkty společnosti Microsoft pro lepší výkon. Pro například můžete použít Data Transformation Services (DTS) nebo Microsoft SQL Server 2005 Integration Services.

Příklad

Následující příklad ukazuje, jak lze tento problém vyřešit. Příklad:
  • Nelze sestavu, která vrátí hodnotu 160 stránek ve správci sestav vykreslí ve formátu PDF a to ve formátu aplikace Excel. Sestavu nelze zcela překročit Při použití velikost stránky 8.5 podle 281 250 stránek.
  • Zdroj dat pro sestavu vrátí 500 megabajtů (MB) data na serveru. Obvykle SQL Server 2000 Reporting Services vyžaduje dvakrát až třikrát množství paměti, který používá objekt dataset. Proto Reporting Services serveru SQL Server 2000 vyžaduje téměř 1,5 GB paměti Vykreslit sestavy.
Chcete-li vyřešit problém v tomto příkladu, upravit sestavy tak, aby že sestava zobrazuje souhrnná data pouze pro omezenou sadu hodnot filtru. Dále se ujistěte, že agregace dochází v databázi dotaz Sestava získává data a agregace není vlastní sestavy. Tyto metody pomoci významně snížit množství dat, která je vrácena server pro vykazování. Proto úspěšně vykreslení sestavy a další rychle.

Další informace

Použijete-li službu zasílání zpráv serveru SQL Server 2000, může dochází k problému souvisejícího s pamětí, který je způsoben některou z následujících chybový stav:
  • Na System.OutOfMemoryException Chyba je aktivována.
  • Vypršení limitu paměti.
Hlavní rozdíl mezi chybových podmínek je úrovni chybové stavy ulovených a zpracování.

Na System.OutOfMemoryException Chyba je chyba, která mu hlášení aplikace SQL Server 2000 Služby při operaci vyžaduje více paměti od systému a systému paměť nemůže poskytnout. K této chybě dojde, SQL Server 2000 Reporting Služby ukončí proces nebezpečným způsobem. Není bezpečné vypnutí počítače protože SQL Server 2000 Reporting Services sdílí zdroje mezi systémem požadavky. Proto nemůže zaručit Reporting Services serveru SQL Server 2000, která data jsou stále bezpečné pro všechny požadavky.

Limity paměti jsou sady nastavení chránit systém před potenciálně destabilizing podmínek. Například paměť limity zabránit serveru zprávu zpracovat pomocí příliš mnoho paměti. Limity paměti jsou určeny pomocí MemoryLimit nastavení a až MaximumMemoryLimit nastavení, které jsou definovány v soubor RSReportServer.config. Když vypršení limitu paměti, vyvolává chyby Microsoft.NET Rámec před spuštěním služby zasílání zpráv serveru SQL Server 2000 skutečně mimo paměť.

Můžete vykreslit sestavy z webu nebo z naplánované úkol. Proto může dojít chybových podmínek ve dvou různých prostředích v serveru SQL Server 2000 Reporting Services. V prostředí jsou následující:
  • Webovou službou Reporting Services
  • Služby systému Windows Server sestavy
Proto následující kombinace chybové stavy a prostředí existuje.

Webovou službou Reporting Services a System.OutOfMemoryException chybu

Výjimku a vypnutí zpráv, podobné jsou zaznamenány následující zprávy v protokolu SQL Server 2000 Reporting Services soubor (ReportServerService_<timestamp></timestamp>.log):

W3wp! knihovny! 1b3c! 11/07/2005-10:38:00:: e Chyba: nalezen System.OutOfMemoryException výjimka: Microsoft.ReportingServices.ReportProcessing.WrapperReportRenderingException: Výjimka typu Byl Microsoft.ReportingServices.ReportRendering.ReportRenderingException vyvolání. ---> Microsoft.ReportingServices.ReportRendering.ReportRenderingException: výjimky Typ Microsoft.ReportingServices.ReportRendering.ReportRenderingException byla vyvolána. ---> System.OutOfMemoryException: výjimce typu System.OutOfMemoryException byla vyvolána.

W3wp! knihovny! 1b3c! 11/07/2005-10:38:00:: e Chyba: ukončující pracovník proces
Poznámka: Standardně ReportServerService_<timestamp></timestamp>log soubor v následujícím umístění:
\Microsoft SQL Server\<instance of="" sql="" server=""></instance>\Reporting Services\LogFiles
Kromě toho jsou události podobné následující události zaznamenána do protokolu aplikací:


Událost Typ: upozornění
Zdroj události: W3SVC
Kategorie události: žádný
ID události: 1011
Datum: Datum
Čas: Čas
Uživatel: není k dispozici
Počítač: Název_počítače
Popis:
Určený proces fond aplikací "defaultapppool" utrpělo závažné chybě v komunikaci s Publikování na webu služby. Id procesu byla "9132". Datové pole obsahuje číslo chyby.

Nelze službu zasílání zpráv serveru SQL Server 2000 tuto chybu řádně řešit. Úlovky služby Reporting Services Web výjimky a jejím ukončení procesu. Musíte znovu odešlete požadavek.

Chcete-li tento problém vyřešit, můžete přidat více fyzické paměti systém nebo snížit spotřebu paměti jiných procesy.

V ideálním případě můžete upravit MemoryLimit nastavení nebo Fond aplikací nastavení z (IIS) 6.0, že chybu uvízl dříve, než dojde k situaci z důvodu nedostatku paměti. Proto proces se zabývá více snížena. Musíte vyzkoušet nastavení a není zaručeno, že bude vždy dostanete paměť nejprve omezení.

Webovou službou Reporting Services a limity paměti

Zprávy jsou zaznamenány v protokolu událostí systému Windows a SQL Server Soubor protokolu 2000 reporting Services. Soubor protokolu služby Reporting Services Web Určuje vypnutí procesu. Však vykazování serveru SQL Server 2000 Služby neurčuje vypnutí počítače a informace o chybě se nelze přihlásit o vypnutí počítače.

Můžete zaznamenat některé z následujících událostí je zaznamenána do protokolu aplikací:

Události 1


Program aspnet_wp.exe (PID:<pidnumber></pidnumber>) byl recyklován, protože paměť překročení spotřeby <sizelimit></sizelimit> MB (<percentage></percentage> k dispozici procent RAM).

Události 2


Pracovní proces s id procesu "2420" fond aplikací sloužící "defaultapppool" požadoval recyklaci protože bylo dosaženo jeho limitu virtuální paměti.

Když se omezí paměť je dosaženo, Microsoft ASP.NET nebo IIS 6.0 chybu zpracovává a vypne Služba zasílání zpráv webové služby. Limity paměti jsou uvedeny všechny ASP.NET nebo pomocí služby IIS 6.0 a jsou není řízen SQL Server 2000 Reporting Služby.

Limity paměti ve skupinovém rámečku můžete změnit <processmodel></processmodel> oddíl v souboru Machine.config.

Poznámka: Pokud používáte službu IIS 6.0 v nativním režimu, souboru Machine.config. soubor není používán. Limity paměti jsou řízena vlastností fond aplikací služby IIS 6.0.

Další informace o paměti konfigurace v prostředí ASP.NET a služba IIS 6.0 naleznete na následujících webech MSDN:

Služby systému Windows Server zprávu a System.OutOfMemoryException chybu

Zprávy nejsou doručovány do sdílené nebo dodány Upsaný příjemci. Při zpracování automaticky naplánovanou vykreslení restartování procesu se pokusí znovu spusťte stejnou předplatné jako součást proces obnovení. Chybové zprávy podobné následující chyba zprávy jsou zaznamenány do souboru protokolu služby zasílání zpráv serveru SQL Server 2000:

ReportingServicesService! knihovny! 618! 7/9/2003-16: 06: 01:: Stav: Chyba: typ System.OutOfMemoryException byla vyvolána výjimka.
ReportingServicesService! oznámení! 618! 7/9/2003-16: 06: 01:: generovaná chyba Zprostředkovatel dodání: System.OutOfMemoryException: výjimce typu System.OutOfMemoryException byla vyvolána.
ReportingServicesService! oznámení! 618! 7/9/2003-16: 06: 01:: oznámení 380e6cd2-3e3d-4549-9ed5-9fb6b42266b6 bylo dokončeno. Úspěch: False, stav: Chyba: Typ System.OutOfMemoryException byla vyvolána výjimka., DeliveryExtension: E-mail Server sestavy, sestavy: Faktura, pokus O 0
ReportingServicesService! dbpolling! 618! 7/9/2003-16: 06: 01:: NotificationPolling dokončení zpracování položky 380e6cd2-3e3d-4549-9ed5-9fb6b42266b6
ReportingServicesService! servicecontroller! 568! 7/9/2003-16: 09: 30:: i INFO: Požadované paměti omezení aplikace domény Koš
ReportingServicesService! servicecontroller! 568! 7/9/2003-16: 09: 30:: i INFO: Recyklace služby od výchozí domény
ReportingServicesService! dbpolling! 568! 7/9/2003-16: 09: 30:: EventPolling dotazování service byla zastavena.
ReportingServicesService! dbpolling! 87 c! 7/9/2003-16: 09: 30:: EventPolling podproces prezenčního signálu pro zastavení ukončení.
ReportingServicesService! dbpolling! 568! 7/9/2003-16: 09: 30:: Služba NotificationPolling dotazování
ReportingServicesService! dbpolling! 880! 7/9/2003-16: 09: 30:: NotificationPolling vlákno na prezenční signál ukončení pro zastavení.
ReportingServicesService! dbpolling! 568! 7/9/2003-16: 09: 30:: SchedulePolling dotazování service byla zastavena.
Server Windows sestavy služby úlovky výjimky a jejím ukončení procesu. Toto není bezproblémové proces a všechny Další požadavky, které jsou v procesu budou ztraceny.

Nelze konfigurovat žádné nastavení, aby se zabránilo tomuto problému. Tento problém je ovlivněna paměti v počítači a spotřebou paměti dalších procesů.

K Tento problém vyřešit, můžete přidat více fyzické paměti počítače nebo snížit spotřeba paměti jinými procesy.

Služba Windows Server zprávu a limity paměti

Zprávy nejsou doručovány do sdílené nebo dodány Upsaný příjemci. Na Stav odběr vlastnost má hodnotu "Přerušení podprocesu". Chyba zprávy podobné následující chybové zprávy jsou zaznamenány v SQL Soubor protokolu služby Server 2000 Reporting Services:

ReportingServicesService! reportrendering! 17a8! 09/28/2005-16: 10: 12:: e Chyba: vyvolání Microsoft.ReportingServices.ReportProcessing.WrapperReportRenderingException: Výjimka typu Byl Microsoft.ReportingServices.ReportRendering.ReportRenderingException vyvolání., Info: Microsoft.ReportingServices.ReportProcessing.WrapperReportRenderingException: Výjimka typu Byl Microsoft.ReportingServices.ReportRendering.ReportRenderingException vyvolání. ---> Microsoft.ReportingServices.ReportRendering.ReportRenderingException: výjimky Typ Microsoft.ReportingServices.ReportRendering.ReportRenderingException byla vyvolána. ---> System.Threading.ThreadAbortException: podproces byl právě bylo přerušeno.
ReportingServicesService! runningjobs! 17a8! 09/28/2005-16: 10: 12:: i INFO: CancelableJobExecution.Execute ulovených jiná výjimka přerušení podprocesu
ReportingServicesService! knihovny! 17a8! 09/28/2005-16: 10: 12:: i INFO: Inicializace EnableExecutionLogging "PRAVDA" jako v systému serveru Vlastnosti.
ReportingServicesService! runningjobs! 1810! 09/28/2005-16: 10: 12:: i INFO: CancelableJobExecution.Execute ulovených jiná výjimka přerušení podprocesu
ReportingServicesService! knihovny! 1810! 09/28/2005-16: 10: 12:: i INFO: Inicializace EnableExecutionLogging "PRAVDA" jako v systému serveru Vlastnosti.
ReportingServicesService! dbpolling! 1810! 09/28/2005-16: 10: 12:: NotificationPolling již probíhá zpracování položky fc 6e786bb5-3e4d-462a-92-2942e6aec007, bude zařazena.
ReportingServicesService! dbpolling! 1810! 09/28/2005-16: 10: 12:: pracovní fronty podproces ulovených Neošetřená výjimka: System.Threading.ThreadAbortException: Proběhlo přerušení podprocesu.
na Microsoft.ReportingServices.library.NotificationQueueWorker.HandleNotification (QueueItem položka)
na Microsoft.ReportingServices.library.NotificationQueueWorker.QueueWorker (QueueItem položka)
na Microsoft.ReportingServices.library.QueuePollWorker.WorkItemStart (stav objektu)
Poznámka: Tyto zprávy jsou následuje k náhlému ukončení protokolu soubor.

Sestavy serveru Windows service se pokusí dokončit existující požadavky. Navíc služba systému Windows Server zprávu sleduje svůj vlastní nastavení konfigurace a ujistěte se, že požadovaná operace nepřekročí limity paměti. Pokud požadovaná operace překročí limity paměti Služba Server Windows zprávu zastaví proces. Windows Server sestavy služba automaticky přepne neúspěšné úlohy v seznamu úloh při spuštění. Když Sestava Server Windows service restartování pokusů služby Windows Server zprávu znovu spustit úlohy.

Dvě nastavení soubor RSReportServer.config vliv konfigurace paměti. Konkrétní položky jsou MaximumMemoryLimit nastavení a MemoryLimit nastavení v <service></service> značka.

Tyto hodnoty představují procentuální hodnotu fyzického paměť. Spotřeba paměti existujících požadavků dosáhne procento, které je určeno MemoryLimit nastavení sestavy serveru Windows service přestane převzetí Další požadavky. Požadavky, které jsou aktuálně probíhající však pokračovat. Nové požadavky jsou přijímány znovu po volné paměti je menší než procento který je určen MemoryLimit nastavení.

Pokud stávající spotřeby paměti požadavky dosáhne procento, které je určeno MaximumMemoryLimit nastavení, je zpráva serveru domény ukončeno.

Tato nastavení napodobovat limity paměti pod <processmodel></processmodel> oddíl v souboru Machine.config a efektivní práci stejné způsob. Tato nastavení půjčit soulad mezi webovou službou Reporting Services a službu Windows Server zprávu.

Odkazy

Další informace naleznete v následujících tématech, které se na serveru SQL Server Knihy Online:
  • Jak přidat odkaz přejít na nejnižší úroveň sestavy (sestava Designer)
  • Export sestav
  • Konfigurační soubor RSReportServer
  • Recyklace sestavy serveru aplikačních domén

Vlastnosti

ID článku: 909678 - Poslední aktualizace: 22. května 2011 - Revize: 5.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SQL Server 2000 Reporting Services
  • Microsoft SQL Server 2005 Reporting Services
Klíčová slova: 
kbsqlsetup kbexpertiseadvanced kbprb kbmt KB909678 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:909678

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com