Hola a todos.
Aquí os dejo un post que espero que le sea de utilidad y que me ha tocado vivir en un cliente con problemas en rendimiento de reportes.
Uno de los problemas es un Reporte que solo daba error al ejecutar en una de las ocho compañías, con el siguiente mensaje de error:
Para ello aplicamos algunas recomendaciones que nos da Microsoft, aquí os dejo las referencias.
https://technet.microsoft.com/en-us/library/jj969577.aspx
http://blogs.msdn.com/b/dynamicsaxbi/archive/2013/02/14/how-to-addressing-ssrs-session-timeouts.aspx
Luego de revisar los links de referencia realice esta secuencia de pasos para evitar el error:
1. Especificar el timeout para todos los reportes.:
1.1 Para esto vamos al Report Manager (instancia donde esta desplegado los reportes de AX), vamos a Configuración del Sitio y luego propiedades, en la sección de tiempo de espera y le ponemos (en mi caso) No Establecer tiempo de espera de informe
1.2 Editar Reporte, luego me voy al reporte que me esta dando problemas y le doy en Administrar
En las propiedades me voy a Opciones de procesamiento y en la sección de Tiempo de espera de informe le doy No Establecer tiempo de espera de informe.
2. Crear archivo .rss para las sesiones de usuario – timeout
En un bloc de notas crear un nuevo RSS de la siguiente forma:
Copiamos en el bloc de notas lo siguiente:
Public Sub Main()
Dim props() as [Property]
props = new [Property] () { new [Property](), new [Property]() }
props(0).Name = "SessionTimeout"
props(0).Value = timeout
props(1).Name = "SessionAccessTimeout"
props(1).Value = timeout
rs.SetSystemProperties(props)
End Sub
y guardamos como SessionTimout.rss.
Luego ejecutamos el CMD (como admin) y ponemos el siguiente Script:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:Program Files (x86)Microsoft SQL Server100ToolsBinn>rs.exe -i C:TEMP2Se
ssionTimout.rss -s http://axrepser/ReportServer -v timeout="72000"
The command completed successfully
3. Modificar el config del WCF para Timeout.
Para ello, nos vamos al servidor donde tenemos el AOS, los pasos 1 y 2 se hacen en el servidor donde tenemos el Reporting para AX, editamos el Ax32Serv.exe.config (lo abrimos en un bloc de notas)
Buscamos el QueryServiceBinding y cambioamos sendTimeout de 10 por 30; esto en cada AOS que tengamos.
4. Actualizando el BC en el Cliente del Servidor de Reportes.
Para ello regresamos al servidor de reportes y abrimos nuestro AX Client Configurator Utility, y nos situamos en Business Conector (creamos una nueva configuración), revisamos que la conexión apunte a los AOS que tengamos, hacemos un refresh de servicios y le damos en Configure Services
Y cambios los valores de:
SendTimeout –> 20
ReceiveTimeout –> 20
MaxReceiveMessageSize –> 4294967295
Luego hacemos un reinicio a los servicios de reportes (SSRS) y después nos vamos a nuestro cliente de AX, nos situamos en los puertos de entrada de la aplicación, seleccionamos el BIServices y le damos desactivar y luego activar.
Y listo, volvemos a probar nuestro reporte.
Espero que les sea de utilidad.