Artigo: 909678 - Última revisão: terça-feira, 24 de Novembro de 2009 - Revisão: 3.0 Poderá receber a mensagem de erro de "System.OutOfMemoryException" quando utiliza o SQL Server Reporting Services
Nesta páginaSintomasQuando utilizar o Microsoft SQL Server 2000 Reporting Services ou utilizar o Microsoft SQL Server 2005 Reporting Services, poderá receber a seguinte mensagem de erro: Ocorreu um erro interno no servidor de relatório. Consulte o registo de erro para obter mais detalhes. (rsInternalError) Obter ajuda online Excepção do tipo foi accionada System.OutOfMemoryException. System.OutOfMemoryException: Excepção do tipo System.OutOfMemoryException foi accionada. Evento 1
CausaEste problema ocorre porque o computador não tem memória suficiente para concluir a operação pedida. Uma limitação no SQL Server 2000 Reporting Services faz com que determinadas partes do relatório de processamento para ser dependente de memória. Por exemplo, processamento de resultado de consulta e composição de modelo de objecto são dependente de memória. O computador não tem memória suficiente para concluir a operação pedida quando uma ou mais das seguintes condições se verificar:
Se este problema ocorrer durante a fase de execução, este problema ocorre provavelmente porque demasiada memória consumida pelos dados que são devolvidos no resultado da consulta. Além disso, os seguintes factores afectam o consumo de memória durante a fase de execução:
http://msdn2.microsoft.com/en-us/library/aa179471(SQL.80).aspx
(http://msdn2.microsoft.com/en-us/library/aa179471(SQL.80).aspx)
ResoluçãoPara resolver este problema, utilize um dos seguintes métodos. Método 1Adicione suficiente memória física ao computador.Nota Se tiver mais do que 2 gigabytes (GB) de memória, pode activar o / 3 GB mudar no ficheiro Boot.ini para um melhor desempenho. Para obter mais informações sobre como utilizar o parâmetro/3 GB no SQL Server, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft: 274750
(http://support.microsoft.com/kb/274750/
)
Como configurar o SQL Server para utilizar mais de 2 GB de memória física Método 2Relatórios de agenda para executar em off-hours quando forem inferiores restrições de memória.Método 3Ajustar a MemoryLimit definição em conformidade.Nota Quando compor um relatório através da Web de serviços de relatório serviço, o serviço Web de serviços de relatório obtém a definição MemoryLimit do ficheiro Machine.config. No entanto, um relatório agendado é composto pelo serviço do Windows do servidor de relatórios. O relatório do Windows Server o serviço obtém a definição MemoryLimit do ficheiro RSReportServer.config. Para mais informações sobre a definição MemoryLimit, consulte a secção "Mais informação". Método 4Actualizar para uma versão de 64 bits do Microsoft SQL Server 2005 Reporting Services.Método 5Recriar o relatório. Para o fazer, utilize um dos seguintes métodos.Método umRecriar as consultas de relatório. Pode reduzir o consumo de memória ao redesenhar as consultas de relatório das seguintes formas:
Método BExportar o relatório para um formato diferente. Pode reduzir o consumo de memória, utilizando um formato diferente para apresentar o relatório. A seguinte tabela lista vários formatos de exportação de ordem do maior consumo de memória para o menor consumo de memória.Reduzir esta tabela
Método CSimplifica a estrutura do relatório. Pode reduzir o consumo de memória, simplificando a estrutura do relatório das seguintes formas:
ExemploO exemplo seguinte demonstra como resolver este problema. Considere o seguinte exemplo:
Mais InformaçãoQuando utiliza o SQL Server 2000 Reporting Services, poderá detectar um problema de relacionadas com a memória de mensagens em fila que é causado por uma das seguintes condições de erro:
O erro System.OutOfMemoryException é um erro que é accionado pelo SQL Server 2000 Reporting Services quando uma operação pede mais memória do sistema e o sistema não consegue fornecer a memória. Quando este erro ocorre, SQL Server 2000 Reporting Services encerra o processo de uma forma insegura. O encerramento não é seguro porque o SQL Server 2000 Reporting Services partilha recursos entre executar pedidos. Por conseguinte, SQL Server 2000 Reporting Services não garante que são ainda seguros para todos os pedidos de dados. Os limites de memória são um conjunto de definições para ajudar a proteger o sistema de destabilizing potencialmente condições. Por exemplo, a memória limites ajuda a impedir que um servidor de relatórios processar a utilização de demasiada memória. Os limites de memória são especificados através da definição de MemoryLimit e através da definição de MaximumMemoryLimit que estão definidos no ficheiro RSReportServer.config. Quando são atingidos os limites de memória, erros são desencadeados pelo Microsoft .NET Framework antes de SQL Server 2000 Reporting Services, na realidade, ficar sem memória. Pode compor um relatório a partir do Web site ou de uma tarefa agendada. Assim, as condições de erro poderão ocorrer em dois ambientes diferentes no SQL Server 2000 Reporting Services. Os ambientes são os seguintes:
O serviço Web de serviços de relatório e o erro de System.OutOfMemoryExceptionExcepção mensagens e mensagens de encerramento que são semelhantes às seguintes mensagens de são registadas no ficheiro de registo do SQL Server 2000 Reporting Services (ReportServerService_ <timestamp>.log):w3wp! biblioteca! 1b3c! 07/11/2005-10:38:00:: electrónico erro: excepção encontrado System.OutOfMemoryException: Microsoft.ReportingServices.ReportProcessing.WrapperReportRenderingException: excepção do tipo Microsoft.ReportingServices.ReportRendering.ReportRenderingException foi accionada. ---> Microsoft.ReportingServices.ReportRendering.ReportRenderingException: excepção do tipo Microsoft.ReportingServices.ReportRendering.ReportRenderingException foi accionada. ---> System.OutOfMemoryException: excepção do tipo System.OutOfMemoryException foi accionada. w3wp! biblioteca! 1b3c! 07/11/2005-10:38:00:: electrónico erro: terminar o processo de trabalho \Microsoft SQL Server\ <Instance of SQL Server> \Reporting Services\LogFiles Além disso, são registados eventos semelhantes ao seguinte evento no registo de aplicações:
Para resolver este problema, pode adicionar mais memória física para o sistema ou reduzir o consumo de memória de outros processos. Idealmente, pode ajustar a definição MemoryLimit ou a definição de Agrupamento de aplicações do Microsoft Internet Information Services (IIS) 6.0, de modo a que se encontra um erro antes de ocorre a situação de memória esgotada. Por conseguinte, o processo é distribuído com mais correctamente. Tem a experimentar as definições, e não existe nenhuma garantia de que irá sempre atingir os limites de memória primeiro. O serviço Web de serviços de relatório e os limites de memóriaAs mensagens são registadas no registo de eventos do Windows e no ficheiro de registo de SQL Server 2000 Reporting Services. O ficheiro de registo de serviço Web de serviços de relatório indica que o processo está a ser encerrado. No entanto, o SQL Server 2000 Reporting Services não controla o encerramento e não é possível registar as informações de erro sobre o encerramento.Poderá notar um dos seguintes eventos é registado no registo de aplicações: Evento 1
Pode alterar os limites de memória em de <processmodel> secção no ficheiro Machine.config. Nota Se estiver a executar o IIS 6.0 no modo nativo, Machine.config ficheiro não é utilizado. Os limites de memória são controlados pelas propriedades do agrupamento de aplicações no IIS 6.0. Para obter mais informações sobre a configuração de memória no ASP.NET e IIS 6.0, visite os seguintes Web sites da MSDN:
O serviço de relatório Server Windows e o erro de System.OutOfMemoryExceptionRelatórios não são entregues numa partilha de ficheiros ou entregues a destinatários subscritos. Quando compor agendada processo reinicia automaticamente, o processo tenta executar novamente a subscrição mesma como parte do processo de recuperação. São registadas mensagens de erro semelhantes às seguintes mensagens de erro no ficheiro de registo do SQL Server 2000 Reporting Services:ReportingServicesService! biblioteca! 618! 7/9/2003-16: 06: 01:: estado: erro: excepção do tipo System.OutOfMemoryException foi accionada. ReportingServicesService! notificação! 618! 7/9/2003-16: 06: 01:: erro emitido pelo fornecedor de entrega: System.OutOfMemoryException: excepção do tipo System.OutOfMemoryException foi accionada. ReportingServicesService! notificação! 618! 7/9/2003-16: 06: 01:: notificação 380e6cd2-3e3d-4549-9ed5-9fb6b42266b6 concluída. FALSE, o estado de êxito:: Erro: excepção do tipo System.OutOfMemoryException foi accionada., DeliveryExtension: correio electrónico do servidor de relatório, mapa: factura, tentativa 0 ReportingServicesService! dbpolling! 618! 7/9/2003-16: 06: 01:: NotificationPolling terminar o processamento item 380e6cd2-3e3d-4549-9ed5-9fb6b42266b6 ReportingServicesService! servicecontroller! 568! 7/9/2003-16: 09: 30:: i INFO: memória restrição app domínio Reciclagem pedida ReportingServicesService! servicecontroller! 568! 7/9/2003-16: 09: 30:: i INFO: o serviço do domínio predefinido de Reciclagem ReportingServicesService! dbpolling! 568! 7/9/2003-16: 09: 30:: EventPolling consulta o serviço parado ReportingServicesService! dbpolling! 87 c! 7/9/2003-16: 09: 30:: EventPolling thread de heartbeat para parar a sair. ReportingServicesService! dbpolling! 568! 7/9/2003-16: 09: 30:: NotificationPolling consulta serviço parado ReportingServicesService! dbpolling! 880! 7/9/2003-16: 09: 30:: NotificationPolling heartbeat thread sair para parar. ReportingServicesService! dbpolling! 568! 7/9/2003-16: 09: 30:: SchedulePolling consulta o serviço parado Não é possível configurar quaisquer definições para impedir que este problema. Este problema é afectado pela quantidade de memória no computador e pelo consumo de memória de outros processos. Para resolver este problema, pode adicionar mais memória física para o computador ou reduzir o consumo de memória de outros processos. O serviço do Windows Server de relatório e os limites de memóriaRelatórios não são entregues numa partilha de ficheiros ou entregues a destinatários subscritos. A propriedade status de uma subscrição tem o valor de "Interrupção threads". Erro são registadas mensagens semelhantes às seguintes mensagens de erro no ficheiro de registo de SQL Server 2000 Reporting Services:ReportingServicesService! reportrendering! 17a8! 09/28/2005-16: 10: 12:: electrónico erro: deitar Microsoft.ReportingServices.ReportProcessing.WrapperReportRenderingException: excepção do tipo Microsoft.ReportingServices.ReportRendering.ReportRenderingException foi accionada., INFO: Microsoft.ReportingServices.ReportProcessing.WrapperReportRenderingException: excepção do tipo Microsoft.ReportingServices.ReportRendering.ReportRenderingException foi accionada. ---> Microsoft.ReportingServices.ReportRendering.ReportRenderingException: excepção do tipo Microsoft.ReportingServices.ReportRendering.ReportRenderingException foi accionada. ---> System.Threading.ThreadAbortException: thread a ser abortado. ReportingServicesService! runningjobs! 17a8! 09/28/2005-16: 10: 12:: I INFO: CancelableJobExecution.Execute detectada algumas outras excepções de abortar thread ReportingServicesService! biblioteca! 17a8! 09/28/2005-16: 10: 12:: i INFO: inicializar EnableExecutionLogging como 'True' como especificado nas propriedades de sistema do servidor. ReportingServicesService! runningjobs! 1810! 09/28/2005-16: 10: 12:: i INFO: CancelableJobExecution.Execute detectada algumas outras excepções de abortar thread ReportingServicesService! biblioteca! 1810! 09/28/2005-16: 10: 12:: i INFO: inicializar EnableExecutionLogging como 'True' como especificado nas propriedades de sistema do servidor. ReportingServicesService! dbpolling! 1810! 09/28/2005-16: 10: 12:: NotificationPolling já não processar item 6e786bb5-3e4d 462a 92 fc-2942e6aec007, irá ser requeued ReportingServicesService! dbpolling! 1810! 09/28/2005-16: 10: 12:: thread de trabalho de fila detectada excepção não processada: System.Threading.ThreadAbortException: thread a ser abortado. em Microsoft.ReportingServices.Library.NotificationQueueWorker.HandleNotification(QueueItem item) em Microsoft.ReportingServices.Library.NotificationQueueWorker.QueueWorker(QueueItem item) em Microsoft.ReportingServices.Library.QueuePollWorker.WorkItemStart (estado do objecto) O serviço de relatório Server Windows tenta concluir pedidos existentes. Além disso, o serviço de relatório Server Windows monitoriza as suas próprias definições de configuração para se certificar de que uma operação pedida não excede os limites de memória. Se uma operação pedida exceder os limites de memória, o serviço de relatório Server Windows pára o processo. O relatório do Windows Server o serviço coloca automaticamente os trabalhos falhou numa lista de tarefas de arranque. Quando o serviço de relatório Server Windows for reiniciado, o serviço de relatório Server Windows tenta executar as tarefas novamente. Duas definições no ficheiro RSReportServer.config afectam a configuração de memória. As entradas específicas são a definição de MaximumMemoryLimit e a definição MemoryLimit em de <service> tag. Estes valores representam uma percentagem de memória física. Se o consumo de memória existentes pedidos de atingir a percentagem especificada pela definição MemoryLimit, o serviço de relatório Server Windows pára a tomar pedidos adicionais. No entanto, se continuar pedidos que estão actualmente em curso. Novos pedidos são aceites novamente após libertar memória inferior a percentagem especificada pela definição MemoryLimit. Se o consumo de memória existentes pedidos de atingir a percentagem especificada pela definição MaximumMemoryLimit, o domínio de aplicação de servidor de relatório é terminado. Estas definições imitar os limites de memória em de <processmodel> secção no ficheiro Machine.config e funcionam eficazmente da mesma forma. Estas definições emprestar consistência entre o serviço Web de serviços de relatório e o serviço do Windows Server de relatório. ReferênciasPara mais informações, consulte os seguintes tópicos no SQL Server Books Online:
A informação contida neste artigo aplica-se a:
Tradução automáticaIMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado. Clique aqui para ver a versão em Inglês deste artigo: 909678
(http://support.microsoft.com/kb/909678/en-us/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesTraduções de Artigos |






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Voltar ao topo