PowerShell y los comandos de inicio en Dynamics AX 2012 (PS-III)

En los primeros artículos de esta serie, aprendimos las bases de PowerShell en general, y cómo utilizar librerías de cmdlets extra, incluyendo las que vienen con Microsoft Dynamics AX 2012 y permiten muchas acciones que facilitan la administración y el mantenimiento. PowerShell - jaestevan.com

Pero para poder utilizar PowerShell en nuestros sistemas DevOps reales, debemos unirlo todo y utilizar tanto cmdlets específicos, como la potencia de PowerShell para poder ejecutar todos los pasos necesarios en un despliegue típico de AX, y en muchas otras tareas de mantenimiento.

Empecemos con PowerShell estándar

Por ejemplo podemos utilizar los comandos base de PowerShell para buscar si en el sistema existe un AOS con un determinado nombre, e iniciarlo si no lo está, de esta forma (probablemente no es la mejor forma, pero resulta ilustrativa para este caso):

powershell-aos-service

$AxAOSName = "MicrosoftDynamicsAX"

$svcAOS = Get-Service AOS60* | Where { $_.DisplayName.EndsWith($AxAOSName) } -ErrorAction SilentlyContinue
if (-not ($svcAOS.Length -gt 0))
{
    throw "AOS service " + $AxAOSName + " can not be found."
}

Write-Host "AOS:" $svcAOS.DisplayName

if ($svcAOS.Status -ne 'Running')
{
    Start-Service $svcAOS -PassThru
}

Continue Reading…

Microsoft Dynamics AX 2012 R2 AxBuild.exe

Cuando nos enteramos de las novedades del reciente Cumulative Update 7 para Microsoft Dynamics AX 2012 R2, creo que como la mayoría de técnicos cercanos a AX, me puse inmediatamente a hacer alguna prueba con la nueva utilidad AxBuild. No es porque fuera la única novedad, pero sin ninguna duda fue una novedad muy esperada y esperanzadora para reducir los tiempos de compilado de la aplicación que se habían disparado desde el lanzamiento de la R2 (llevamos tiempo comentándolo).

Para entender esta utilidad y cómo es capaz de mejorar tanto el rendimiento hay que tener presentes algunos conceptos:

  • El servicio que corre el AOS es un servicio de 64 bits. El cliente de AX es una aplicación de 32 bits.
  • Hasta ahora, el compilado de X++ y la validación de los objetos del AOT se ejecutaba en el cliente. Así sigue siendo si ejecutamos el compilador desde el cliente, como venimos haciendo desde siempre.
  • Estos dos puntos anteriores nos muestran un cuello de botella, primero por el tráfico entre el cliente y servidor de todos los objetos para poder compilarse, y segundo por la merma de rendimiento que supone realizar todo el proceso en una aplicación de 32 bits, con sus limitaciones en cuanto al uso del procesador y la memoria.

Esta nueva utilidad AxBuild lo que nos permite es, en primer lugar eliminar totalmente al cliente del proceso de compilado (eliminando la parte de 32 bits), y por otro lado lanzar tantos procesos de AOS como sea posible para aprovechar todos los procesadores de la máquina. Por defecto, el proceso lanza 1.4 procesos por cada procesador disponible en el servidor, aunque este número se puede configurar.

AxBuild.exe - Rendimiento

Continue Reading…