Avalados por :

Optimización de generación de archivos PDF con Crystal Report en servidor Windows Server 2012R2

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 22 Vistas
0
Cargando...

Hola equipo de SAP,
Tenemos una aplicación antigua .asp.net en la que está integrado Crystal Report.
La versión actual de Crystal Report en el servidor es: 13.0.32.4286 (64 bits)
Servidor Windows Server 2012R2
El Framework actual de .NET es 4.7.02558.
Utilizamos la versión 13.0.4001 de Crystal Report en la construcción de la aplicación.

Por lo tanto, tenemos miles de registros para informes, tenemos un trabajo por lotes que se activa desde una aplicación web.
Actualmente, tenemos la configuración para la generación de un PDF donde se utilizan 1000 registros de datos, lo que significa casi 1000 páginas en PDF (solo usamos formato PDF).
En el backend, utilizamos el método de hilos paralelos en el que generamos 3 archivos PDF como se mencionó anteriormente, comenzando a generar un archivo PDF de 1000 páginas.

El problema es que supongamos que tenemos 5000 archivos PDF y después de generar de 1000 a 2000 archivos, obtenemos el problema de bloqueo de la aplicación Kernalbase.dll. No se encontraron otros eventos ni excepciones en los registros.

Hemos utilizado GC.Collect(); GC.WaitForPendingFinalizers(); y los métodos reportdocument.Close(); reportdocument.Dispose(); en cada hilo.

Por favor, guíame

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

1 Respuestas

0
Cargando...

Hola Raj,

El primer problema es que no uses esa versión, proviene de un sitio de descarga de terceros y ha sido modificada:

"Usamos la versión 13.0.4001 de Crystal Reports en la construcción de la aplicación."

Ve aquí y obtén la versión real del Service Pack (SP):

https://wiki.scn.sap.com/wiki/display/BOBJ/Crystal+Reports%2C+Developer+for+Visual+Studio+Downloads

Y lee todo sobre las variables compatibles.

Además, esa es la versión del framework compatible, la versión real del SP estará en Programas y Características con la versión 13.0.SP.123

SP es la versión de lanzamiento, los últimos 123 son el número de compilación.

Y al actualizar, debes reconstruir utilizando el último SP, que es el 33, y consulta este blog para ayudarte en la actualización:

https://blogs.sap.com/2020/10/30/upgrading-a-visual-studio-2008-2019-.net-project-with-the-latest-cr...

La causa probable es que hay demasiados datos para procesar y probablemente debido a limitaciones de memoria, siempre ha sido así.

No hay solución alternativa, simplemente hay demasiados datos para que el Programa los gestione. Es complicado determinar cuál es el límite, todo depende de la complejidad del informe. Normalmente, CR consumirá alrededor de 1.4 Gigas y luego se bloqueará.

Si es una limitación de PDF, no hay nada que podamos hacer para solucionar esa parte.

Podrías intentar configurar IIS y tu APPPool para que se ejecuten en modo de 64 bits, lo que podría ampliar la cantidad de memoria que puede utilizar.

CR requiere bloques de memoria contiguos, como Windows no puede desfragmentar la memoria después de un tiempo, no habrá suficiente para que CR funcione correctamente. Un reinicio o reinicio de IIS puede solucionarlo, ya que libera la memoria de IIS y posiblemente libere suficiente para que CR encuentre lo que necesita.

Debido a esto, Microsoft recomienda reiniciar IIS con frecuencia, al menos una vez al día, eso podría ayudar.

Como solución alternativa, podrías exportar los datos en conjuntos más pequeños y usar las API de PDF para concatenar esos archivos PDF en un solo archivo grande.

CR no tiene API para hacer eso.

Don

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?