¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Otimização da geração de arquivos PDF com Crystal Report no servidor Windows Server 2012R2

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

Olá equipe da SAP,
Temos uma aplicação antiga .asp.net na qual está integrado o Crystal Report.
A versão atual do Crystal Report no servidor é: 13.0.32.4286 (64 bits)
Servidor Windows Server 2012R2
O Framework atual do .NET é 4.7.02558.
Utilizamos a versão 13.0.4001 do Crystal Report na construção da aplicação.

Portanto, temos milhares de registros para relatórios, temos um trabalho em lote que é acionado a partir de uma aplicação web.
Atualmente, temos a configuração para a geração de um PDF onde são utilizados 1000 registros de dados, o que significa quase 1000 páginas em PDF (apenas usamos o formato PDF).
No backend, utilizamos o método de threads paralelas no qual geramos 3 arquivos PDF como mencionado anteriormente, começando a gerar um arquivo PDF de 1000 páginas.

O problema é que, supondo que temos 5000 arquivos PDF e depois de gerar de 1000 a 2000 arquivos, enfrentamos o problema de bloqueio do aplicativo Kernalbase.dll. Não foram encontrados outros eventos ou exceções nos registros.

Utilizamos GC.Collect(); GC.WaitForPendingFinalizers(); e os métodos reportdocument.Close(); reportdocument.Dispose(); em cada thread.

Por favor, oriente-me

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

1 Respuestas

0
Cargando...

Olá Raj,

O primeiro problema é não utilizar essa versão, pois ela vem de um site de terceiros e foi modificada:

"Usamos a versão 13.0.4001 do Crystal Reports na construção da aplicação."

Vá aqui e obtenha a versão real do Service Pack (SP):

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

E leia tudo sobre as variáveis compatíveis.

Além disso, essa é a versão do framework compatível, a versão real do SP estará em Programas e Recursos com a versão 13.0.SP.123

SP é a versão de lançamento, os últimos 123 são o número da compilação.

E ao atualizar, você deve reconstruir usando o último SP, que é o 33, e consulte este blog para ajudá-lo na atualização:

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

A causa provável é que há muitos dados para processar e provavelmente devido a limitações de memória, sempre foi assim.

Não há solução alternativa, simplesmente há muitos dados para o programa lidar. É complicado determinar qual é o limite, tudo depende da complexidade do relatório. Normalmente, o CR consome cerca de 1,4 Gigas e então trava.

Se for uma limitação do PDF, não há nada que possamos fazer para resolver essa parte.

Você poderia tentar configurar o IIS e seu APPPool para executar em modo de 64 bits, o que poderia ampliar a quantidade de memória que pode ser utilizada.

O CR requer blocos de memória contíguos, como o Windows não pode desfragmentar a memória após um tempo, não haverá memória suficiente para o CR funcionar corretamente. Um reinício ou reinício do IIS pode resolver isso, pois libera a memória do IIS e possivelmente libera o suficiente para o CR encontrar o que precisa.

Devido a isso, a Microsoft recomenda reiniciar o IIS com frequência, pelo menos uma vez por dia, isso poderia ajudar.

Como solução alternativa, você poderia exportar os dados em conjuntos menores e usar as APIs de PDF para concatenar esses arquivos PDF em um único arquivo grande.

O CR não possui API para fazer isso.

Atenciosamente,

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?