Tips para evitar timeout en reportes–AX 2012 R2

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:

clip_image001 

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

image

1.2 Editar Reporte, luego me voy al reporte que me esta dando problemas y le doy en Administrar

image

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.

image

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

image

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.

image

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

image

Y cambios los valores de:

SendTimeout –> 20

ReceiveTimeout  –> 20

MaxReceiveMessageSize –> 4294967295

image

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.

image

Y listo, volvemos a probar nuestro reporte.

Espero que les sea de utilidad.

Publicado por

juanrafael

MVP | MCT MS Dynamics AX-CRM Technical Senior Consultant - ERP and CRM

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *