Puede recibir el mensaje de error "Excepción System.OutOfMemoryException" cuando se utiliza SQL Server Reporting Services

Seleccione idioma Seleccione idioma
Id. de artículo: 909678 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Síntomas

Cuando se utiliza Microsoft SQL Server 2000 Reporting Services o utilizar Microsoft SQL Server 2005 Reporting Services, puede recibir el mensaje de error siguiente:

Un se ha producido un error interno en el servidor de informes.
Consulte el registro de errores para obtener más información obtener información detallada. (rsInternalError) Obtener ayuda en línea
Excepción de tipo Se ha producido la excepción System.OutOfMemoryException.
Además, puede observar que se registra el siguiente mensaje de error en los informes de SQL Server Archivo de registro de servicios, o que el registro termina bruscamente:

Excepción System.OutOfMemoryException: Excepción de tipo Se ha producido la excepción System.OutOfMemoryException.
Puede observar que uno de los raíz de sucesos se registra en el registro de aplicación de Windows de Microsoft:

Evento 1


aspnet_wp.exe (PID:<PIDNumber></PIDNumber>) se recicló debido a memoria consumo superado el <SizeLimit></SizeLimit> MB (<Percentage></Percentage> porcentaje de elementos disponibles RAM).

Evento 2


Un grupo de aplicaciones de servicio de proceso 'DefaultAppPool' sufrió un error grave de comunicación entre el World Wide Web Servicio de publicación. El identificador del proceso era '9132'. El campo de datos contiene el número de error.

Este problema puede producirse junto con uno o varios de los síntomas siguientes:
  • Cuando intenta mostrar un informe, el informe no es nunca terminado.
  • Aparece un informe que deja de responder.
  • Cuando intenta mostrar un informe, es una pantalla en blanco muestra.
  • Recibirá el mensaje de error siguiente:

    Terminado la conexión
  • No se entregan las suscripciones.

Causa

Este problema se produce porque el equipo no tiene memoria insuficiente para realizar la operación solicitada.

Una limitación en Hace que ciertas partes del informe de procesamiento para SQL Server 2000 Reporting Services memoria enlazarse. Por ejemplo, consulta el procesamiento de los resultados y el modelo de objetos representación son memoria enlazado.

El equipo no tiene suficiente memoria para completar la operación solicitada cuando uno o varios de estos procedimientos condiciones son verdaderas:
  • Un informe es demasiado grande o demasiado complejo.
  • La sobrecarga de los otros procesos en ejecución es muy alta.
  • La memoria física del equipo es demasiado pequeño.
Un informe se procesa en dos etapas. Son las dos fases la ejecución y la representación. Este problema puede producirse durante la fase de ejecución o durante la fase de representación.

Si este problema se produce durante la ejecución fase, se produce este problema probablemente porque se consume demasiada memoria en el datos que se devuelven el resultado de la consulta. Además, los factores siguientes afectan al consumo de memoria durante la fase de ejecución:
  • Agrupación
  • El filtrado
  • Agregación
  • Ordenación
  • Código personalizado
Si este problema se produce durante la fase de representación, la causa es relacionados con la información que el informe de muestra y la forma en que el informe muestra el información. Por ejemplo, los siguientes factores afectan el consumo de memoria durante la fase de representación:
  • El número y tipos de controles
  • La relación entre los controles
  • El formato
  • La cantidad de datos que se muestran
Para obtener más información sobre el componente procesador de informes, visite el siguiente sitio Web de Microsoft Developer Network (MSDN):
http://msdn2.Microsoft.com/en-us/library/aa179471 (SQL.80) .aspx

Solución

Para resolver este problema, utilice uno de los métodos siguientes.

Método 1

Agregar suficiente memoria física al equipo.

Nota Si tiene más de 2 gigabytes (GB) de memoria, puede habilitar el modificador/3 GB en el archivo Boot.ini para mejorar el rendimiento. Para obtener más información acerca de cómo utilizar el modificador/3 GB en SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
274750Cómo configurar SQL Server para utilizar más de 2 GB de memoria física

Método 2

Informes de programación para ejecutar fuera del horario laboral cuando son las limitaciones de memoria inferior.

Método 3

Ajustar la configuración MemoryLimit configurar en consecuencia.

Nota Cuando se procesa un informe a través de la Web de Reporting Services servicio, el servicio Web de Reporting Services obtiene la configuración de MemoryLimit en el archivo Machine.config. Sin embargo, un informe programado se representa mediante el servicio Windows del servidor de informes. El informe de servidores Windows servicio Obtiene la configuración de MemoryLimit en el archivo RSReportServer.config.

Para obtener más información obtener información acerca de la configuración de MemoryLimit , consulte la sección "Más información".

Método 4

Actualizar a una versión de 64 bits de Microsoft SQL Server 2005 Reporting Servicios.

Método 5

Vuelva a diseñar el informe. Para ello, utilice uno de los métodos siguientes.

Método A

Vuelva a diseñar las consultas de informe. Puede reducir el consumo de memoria volver a diseñar las consultas de informe de las siguientes maneras:
  • Devolver menos datos en las consultas de informe.
  • Use una restricción mejor en la cláusula WHERE del informe consultas.
  • Mueva las agregaciones complejas al origen de datos.

Método B

Exportar el informe a un formato diferente. Puede reducir la memoria consumo mediante un formato diferente para mostrar el informe. El siguiente tabla enumeran varios formatos de exportación en orden desde la mayoría de consumo de memoria para menor consumo de memoria.
Contraer esta tablaAmpliar esta tabla
FormatoDescripción
Microsoft ExcelProcesa un informe en Excel
Imagen (TIFF)Un informe se representa como una imagen estática en un formato de página
PDFProcesa un informe en formato de documento portátil (PDF)
HTMLRepresenta el informe en formato HTML a un explorador
CSVProcesa un informe en formato delimitado por comas; el informe se abre en una herramienta de visualización que está asociada con los formatos de archivo CSV
XMLProcesa un informe en XML; el informe se abre en una Explorador
Nota Si no se aplica una transformación XSLT, volverá a este formato consumir menos memoria que consume el formato CSV.

Método C

Simplificar el diseño del informe. Puede reducir el consumo de memoria simplificar el diseño del informe de las siguientes maneras:
  • Incluir menos regiones de datos o controles en el informe.
  • Utilice un informe de obtención de detalles para mostrar los detalles.
Además, si el propósito del informe es de sólo los datos colección, puede utilizar otros productos de Microsoft para mejorar el rendimiento. Para ejemplo, puede utilizar los servicios de transformación de datos (DTS) o Microsoft SQL Server 2005 Integration Services.

Ejemplo

En el ejemplo siguiente se muestra cómo resolver este problema. Tenga en cuenta en el siguiente ejemplo:
  • No puede ser un informe que devuelve 160 páginas en el Administrador de informes se representan en formato PDF y en el formato de Excel. El informe se superan con creces 250 páginas cuando se utiliza un tamaño de página de 8,5 por 11 pulgadas.
  • El origen de datos para el informe devuelve 500 megabytes (MB) de datos al servidor de informes. Por lo general, SQL Server 2000 Reporting Services requiere dos o tres veces la cantidad de memoria utilizada por el conjunto de datos. Por lo tanto, SQL Server 2000 Reporting Services requiere casi 1,5 GB de memoria para representar el informe.
Para resolver el problema en este ejemplo, rediseñar el informe por lo que que el informe muestra datos de resumen sólo de un conjunto limitado de valores de filtro. Además, asegúrese de que la agregación se produce en la base de datos de consulta que extrae el informe de datos y que la agregación no es en el informe en Sí. Estos métodos ayudan a reducir considerablemente la cantidad de datos que se devuelven al el servidor de informes. Por lo tanto, el informe se represente correctamente y mucho más rápidamente.

Más información

Al utilizar SQL Server 2000 Reporting Services, puede experimente un problema relacionado con la memoria que se debe a uno de estos procedimientos condiciones de error:
  • Se produce el error de excepción System.OutOfMemoryException .
  • Se alcanzan los límites de memoria.
La diferencia principal entre las condiciones de error es el nivel en que las condiciones de error se detecte y se controle.

El error de excepción System.OutOfMemoryException es un error provocado por SQL Server 2000 Reporting Cuando una operación solicita más memoria del sistema y el sistema de servicios no puede proporcionar la memoria. Este error, SQL Server 2000 Reporting Servicios cierra el proceso de forma insegura. El cierre no es seguro Dado que SQL Server 2000 Reporting Services comparte recursos entre la ejecución solicitudes. Por lo tanto, SQL Server 2000 Reporting Services no puede garantizar que datos están aún más seguros para todas las solicitudes.

Los límites de memoria son un conjunto de configuración para ayudar a proteger el sistema de potencialmente desestabilizadores condiciones. Por ejemplo, se procesará la memoria límites ayudan a evitar que un servidor de informes de uso gran cantidad de memoria. Los límites de memoria se especifican a través de la configuración de MemoryLimit y la configuración de MaximumMemoryLimit que se definen en el archivo RSReportServer.config. Cuando se alcanzan los límites de memoria, se producen errores de Microsoft .NET Marco de trabajo antes de que en realidad, SQL Server 2000 Reporting Services se ejecuta fuera de memoria.

Puede representar un informe desde un sitio Web o desde un programada tarea. Por lo tanto, las condiciones de error pueden producirse en dos entornos diferentes en SQL Server 2000 Reporting Services. Los entornos son los siguientes:
  • El servicio Web de Reporting Services
  • El servicio Windows del servidor de informes
Por lo tanto, las siguientes combinaciones de las condiciones de error y entornos existen.

El servicio Web de Reporting Services y el error de excepción System.OutOfMemoryException

Mensajes de excepción y apagado que son similares a las se registran los mensajes siguientes en el registro de SQL Server 2000 Reporting Services archivo (ReportServerService_<timestamp></timestamp>. log):

w3wp! biblioteca! 1b3c! 07/11/2005-10:38:: e ERROR: encontrado Excepción de la excepción System.OutOfMemoryException: Microsoft.ReportingServices.ReportProcessing.WrapperReportRenderingException: Excepción de tipo Fue de Microsoft.ReportingServices.ReportRendering.ReportRenderingException se produce. ---> Microsoft.ReportingServices.ReportRendering.ReportRenderingException: excepción de tipo Microsoft.ReportingServices.ReportRendering.ReportRenderingException se ha producido. ---> Excepción System.OutOfMemoryException: excepción de tipo Se ha producido la excepción System.OutOfMemoryException.

w3wp! biblioteca! 1b3c! 07/11/2005-10:38:: e ERROR: terminación del trabajo proceso
Nota De forma predeterminada, el ReportServerService_<timestamp></timestamp>archivo .log se encuentra en la siguiente ubicación:
\Microsoft SQL Server\<Instance of="" sql="" server=""></Instance>\Reporting Services\LogFiles
Además, son eventos que son similares al siguiente evento registra en el registro de aplicación:


Evento Tipo: advertencia
Origen del suceso: W3SVC
Categoría del suceso: ninguno
Id. de suceso: 1011
Fecha: Fecha
Hora: Hora
Usuario: N/D
Equipo: NombreDeEquipo
Descripción:
Una porción de proceso grupo de aplicaciones 'DefaultAppPool' sufrió un error grave de comunicación entre el Servicio de publicación World Wide Web. El identificador del proceso era '9132'. El campo de datos contiene el número de error.

SQL Server 2000 Reporting Services no puede administrar correctamente este error. Las capturas de servicio Web de Reporting Services el excepción y se cierra el proceso. Debe volver a enviar el solicitud.

Para resolver este problema, puede agregar más memoria física a el sistema o reducir el consumo de memoria de otros procesos.

Idealmente, se puede ajustar la configuración de MemoryLimit o la configuración de Grupo de aplicaciones de Microsoft Internet Information Services (IIS) 6.0 por lo que que se captura el error antes de que ocurra la situación de falta de memoria. Por lo tanto, el proceso se aborda más correctamente. Debe experimentar con la configuración, y no hay ninguna garantía de que siempre llegará a la memoria en primer lugar los límites.

El servicio Web de Reporting Services y los límites de memoria

Los mensajes se registran en el registro de sucesos de Windows y en el de SQL Server Archivo de registro de 2000 reporting Services. El archivo de registro del servicio Web de Reporting Services indica que se está cerrando el proceso. Sin embargo, SQL Server 2000 Reporting Servicios no controla el apagado y no se puede registrar la información de error sobre el cierre.

Puede observar que es uno de los siguientes eventos registra en el registro de aplicación:

Evento 1


aspnet_wp.exe (PID:<PIDNumber></PIDNumber>) se recicló debido a memoria consumo superado el <SizeLimit></SizeLimit> MB (<Percentage></Percentage> porcentaje de elementos disponibles RAM).

Evento 2


Un proceso de trabajo con el id de proceso '2420' grupo de aplicaciones de servicio 'DefaultAppPool' ha solicitado un reciclaje debido a que alcanzó su límite de memoria virtual.

Cuando se limita la memoria se alcanzan, Microsoft ASP.NET o IIS 6.0 se controla este error y se cierra el Servicio Web de servicios de informes. Los límites de memoria se especifican mediante ASP.NET o por IIS 6.0 y no controlados por SQL Server 2000 Reporting Servicios.

Puede cambiar los límites de memoria en el <processModel></processModel> sección en el archivo Machine.config.

Nota Si está ejecutando IIS 6.0 en modo nativo, el archivo Machine.config no se utiliza el archivo. Los límites de memoria se controlan mediante propiedades de la grupo de aplicaciones en IIS 6.0.

Para obtener más información acerca de la memoria configuración de ASP.NET y en IIS 6.0, visite los siguientes sitios Web de MSDN:

El servicio Windows del servidor de informes y el error de excepción System.OutOfMemoryException

Informes de no entrega a un recurso compartido de archivos o entregar a la destinatarios suscritos. Cuando se procese el renderizado programado automáticamente se reinicia el proceso intenta ejecutar de nuevo la misma suscripción como parte de la proceso de recuperación. Mensajes de error que son similares en el siguiente error los mensajes se registran en el archivo de registro de SQL Server 2000 Reporting Services:

ReportingServicesService! biblioteca! 618! 7, 9, 2003-16: 06:01:: Estado: Error: excepción de tipo se ha producido la excepción System.OutOfMemoryException.
ReportingServicesService! notificación! 618! 7, 9, 2003-16: 06:01:: Error que se produce el proveedor entrega: excepción System.OutOfMemoryException: excepción de tipo Se ha producido la excepción System.OutOfMemoryException.
ReportingServicesService! notificación! 618! 7, 9, 2003-16: 06:01:: notificación 380e6cd2-3e3d-4549-9ed5-9fb6b42266b6 completado. Correcto: False, estado: Error: Excepción de tipo se ha producido la excepción System.OutOfMemoryException., DeliveryExtension: Mensaje del servidor informe, informe: Factura, intento 0
ReportingServicesService! dbpolling! 618! 7, 9, 2003-16: 06:01:: Artículo ha finalizado el procesamiento de NotificationPolling 380e6cd2-3e3d-4549-9ed5-9fb6b42266b6
ReportingServicesService! servicecontroller! 568! 7, 9, 2003-16: 09:30:: i INFO: Reciclaje de dominio de aplicación memoria restricción solicitada
ReportingServicesService! servicecontroller! 568! 7, 9, 2003-16: 09:30:: i INFO: El servicio de dominio predeterminado de reciclaje
ReportingServicesService! dbpolling! 568! 7, 9, 2003-16: 09:30:: EventPolling ha detenido el servicio de sondeo
ReportingServicesService! dbpolling! c 87! 7, 9, 2003-16: 09:30:: EventPolling Salir para detener el subproceso de latido.
ReportingServicesService! dbpolling! 568! 7, 9, 2003-16: 09:30:: NotificationPolling sondeo se detuvo el servicio
ReportingServicesService! dbpolling! 880! 7, 9, 2003-16: 09:30:: Salir para detener el subproceso de latido de NotificationPolling.
ReportingServicesService! dbpolling! 568! 7, 9, 2003-16: 09:30:: SchedulePolling ha detenido el servicio de sondeo
Las capturas de servicio de las ventanas de servidor de informes del excepción y se cierra el proceso. Esto no es un proceso ordenado y cualquiera otras solicitudes que se encuentran en proceso se pierden.

No se puede configurar cualquiera configuración para evitar que este problema. Este problema se ve afectado por la cantidad de memoria en el equipo y por el consumo de memoria de otros procesos.

A resolver este problema, puede agregar más memoria física al equipo o reducir el consumo de memoria de otros procesos.

El servicio Windows del servidor de informes y los límites de memoria

Informes de no entrega a un recurso compartido de archivos o entregar a la destinatarios suscritos. La propiedad Status de una suscripción tiene el valor de "Anulación de subproceso". Error se graban mensajes similares a los siguientes mensajes de error en el SQL Archivo de registro de Server 2000 Reporting Services:

ReportingServicesService! reportrendering! 17a8! 09/28/2005-16: 10:12:: e ERROR: iniciando Microsoft.ReportingServices.ReportProcessing.WrapperReportRenderingException: Excepción de tipo Fue de Microsoft.ReportingServices.ReportRendering.ReportRenderingException produce., Información: Microsoft.ReportingServices.ReportProcessing.WrapperReportRenderingException: Excepción de tipo Fue de Microsoft.ReportingServices.ReportRendering.ReportRenderingException se produce. ---> Microsoft.ReportingServices.ReportRendering.ReportRenderingException: excepción de tipo Microsoft.ReportingServices.ReportRendering.ReportRenderingException se ha producido. ---> System.Threading.ThreadAbortException: subproceso se estaba se anuló.
ReportingServicesService! runningjobs! 17a8! 09/28/2005-16: 10:12:: INFO: CancelableJobExecution.Execute detecta otra excepción de anulación de subproceso
ReportingServicesService! biblioteca! 17a8! 09/28/2005-16: 10:12:: i INFO: Inicializando EnableExecutionLogging en 'True' como especificado en el sistema del servidor Propiedades.
ReportingServicesService! runningjobs! 1810! 09/28/2005-16: 10:12:: i INFO: CancelableJobExecution.Execute detecta otra excepción de anulación de subproceso
ReportingServicesService! biblioteca! 1810! 09/28/2005-16: 10:12:: i INFO: Inicializando EnableExecutionLogging en 'True' como especificado en el sistema del servidor Propiedades.
ReportingServicesService! dbpolling! 1810! 09/28/2005-16: 10:12:: NotificationPolling ya no está procesando el elemento 6e786bb5-3e4d-462 bis-92 fc-2942e6aec007, le sea devuelto a la cola
ReportingServicesService! dbpolling! 1810! 09/28/2005-16: 10:12:: trabajo de cola subproceso detectó la excepción no controlada: System.Threading.ThreadAbortException: Subproceso anulado.
en el Microsoft.ReportingServices.Library.NotificationQueueWorker.HandleNotification (elemento de cola elemento)
en el Microsoft.ReportingServices.Library.NotificationQueueWorker.QueueWorker (elemento de cola elemento)
en el Microsoft.ReportingServices.Library.QueuePollWorker.WorkItemStart (estado del objeto)
Nota Estos mensajes son seguidos por un abrupto final en el registro archivo.

El servicio Windows del servidor de informes intenta completar las existentes solicitudes. Además, el servicio Windows del servidor de informes supervisa su propio Opciones de configuración para asegurarse de que no exceda de una operación solicitada los límites de memoria. Si una operación solicitada supera los límites de memoria, el Servicio de Windows del servidor de informes detiene el proceso. El informe de servidores Windows servicio coloca automáticamente los trabajos con errores en una lista de tareas de inicio. Cuando el Informe de servidores Windows se reinicia, los intentos del servicio de Windows del servidor de informes de servicio volver a ejecutar los trabajos.

Dos opciones en el archivo RSReportServer.config afecta a la configuración de memoria. Estas entradas son la configuración de MaximumMemoryLimit y la configuración de MemoryLimit en el <Service></Service> etiqueta.

Estos valores representan un porcentaje de física memoria. Si el consumo de memoria de la existente solicita alcanza el porcentaje especificado por la configuración de MemoryLimit , el servicio Windows del servidor de informes se detiene teniendo solicitudes adicionales. Sin embargo, seguir las solicitudes que están actualmente en curso. Las nuevas solicitudes se aceptan otra vez después de memoria libre es menor que el porcentaje que se especifica mediante la configuración de MemoryLimit .

Si el consumo de memoria de las existentes las solicitudes alcanza el porcentaje especificado por la configuración de MaximumMemoryLimit , es el dominio de aplicación de servidor de informes finalizado.

Esta configuración imita los límites de memoria en el <processModel></processModel> en el archivo Machine.config y funcionan de forma eficaz a la misma forma. Esta configuración prestan coherencia entre el servicio Web de Reporting Services y el servicio Windows del servidor de informes.

Referencias

Para obtener más información, vea los temas siguientes en SQL Server Libros en pantalla:
  • Cómo agregar un vínculo de informe (informe de obtención de detalles Diseñador)
  • Exportación de informes
  • Archivo de configuración de RSReportServer
  • Reciclaje de dominios de aplicación de servidor de informes

Propiedades

Id. de artículo: 909678 - Última revisión: viernes, 29 de marzo de 2013 - Versión: 5.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 2000 Reporting Services
  • Microsoft SQL Server 2005 Reporting Services
Palabras clave: 
kbsqlsetup kbexpertiseadvanced kbprb kbmt KB909678 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 909678

Enviar comentarios

 

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