Wednesday, March 9, 2016

New Blog - DynamicsAX Technical Journal

Please visit my new Blog for Dynamics AX (#MSDynAX) for my thoughts and experience with the New Dynamics AX

Monday, January 25, 2016

Life Cycle Services, AX Update Installer (axupdateinstaller.exe) Episode x

When applying CU10 to a Existing AX 2012 R3 solution, I once again stumbled upon the mysterious Date tied to Option "Most recent" as shown below.

I first applied CU10 and then, "Most recent" during week 2 2016 to catch up with hotfixes released after CU 10 (released 24 Nov 2015).

When I today once again checked if Microsoft had increased the "Until Date", it still was showing December 9 2015...

Dear Microsoft - why is this date still December 9 2015? And what's the reason for not updating this value centrally in LCS?

Tuesday, December 15, 2015

Dynamics AX

Just as a "ping" to my Readers - I'm still around. Busy times as usual and especially one AX 2012 R3 Project has kept me busy for some time. And when we just got the grips on AX 2012 R3, we have to prepare for a new version... This post gave me an opportunity to share some general information related to my work and some initial thoughts about Dynamics AX...


Besides working in the Project mentioned above, I have also worked with a customer running AX 2012 R2 CU7 on replacing older physical servers running Windows Server 2008 R2, with New Virtual Servers running under vSphere 5.x and Windows Server 2012 R2. The most interesting part of this delivery, is the fact that they are running on the Nutanix platform. Compared to a traditional vSphere implementation with classic servers (hosts) and a SAN, this is my first experience with Converged Infrastructure. Not at the Hypervisor or Hardware level, but with Virtual Machines specified by us (me) and provisioned by the Customer regarding to the specification. Without going into all details, Nutanix is a player within the Converged Infrastructure area where one of the main differences from the classic approach, is that the Storage Layer is hosted within the same Physical Unit (appliance) as the other key System Resources (CPU, Memory, networking etc.) and still presentad as a SAN when deploying multiple Nutanix Appliances. The goal is basically to reduce the distance between the Storage consumer and the Storage Devices compared to the classic approach where the data has to travel through a Host Bus Adapter, a Fiber Channel which again goes through a/several Fiber Switch(es) before arriving at the SAN Controller and finally the Physical Storage Device(s). Over simplified, but you probably see the difference. It will be interesting to see how AX performs on this platform.


In between this, I was also lucky enough to attend the AX 7 Technical Preview in Redmond. The content was valuable for most of the sessions I attended with BRK 101 Better together: How Microsoft Dynamics AX 7 leverages SQL Azure and SQL Server 2016 as the single most interesting one for me. A lot of stuff going on in this area after Microsoft decided to move the Dynamics Team into the Cloud and Enterprise (C+E) team. I recommend attending the Technical Conference in 2016 based on what I saw in the Preview Conference and the fact that Dynamics AX is a technical release.


I have looked a little bit at AX 7 from CTP4 to CTP7, but I will not conclude on anything before working more with what is now officially named Dynamics AX to be released in February 2016. The main reason is of course the fact that Dynamics AX represents an architectural change to leverage Azure Public Cloud as the only platform in the initial release (let's call it Dynamics AX R1) and the number of changes this implies especially for the Technical Roles. Seen from Our part of the world (North Europe) with the current regulations, the lack of an Azure Data Center in the Nordics, might imply a challenge to get customers to run AX in the Cloud. And I know that we are operating in a small market compared to the US, but the lack of a Nordic Azure Data Center, will probably limit the adoption of AX R1 in the Nordics. But Test, Demo and Development deployments in Azure is still the only way to run AX R1 until the OnPremise (R2) version is released. In the meantime Microsoft has to release Windows Server 2016 with the Azure Pack and SQL Server 2016 since these are three Key Enablers for AX OnPremise deployments. And finally customers have the possibility to migrate from Azure Public Cloud to an Azure Private Cloud for their Production Deployments... At least this is how I read the current Road Map.


The only thing I'm absolutely sure about, is that the future of AX in many ways will be different with a set of new challenges for everyone involved. I have seen the product evolve from the early days (Damgard Axapta 1.5) through the transition since Microsoft bought Navision, and if I used the term Microsoft product when describing AX 2012 (back then the Microsoft Stack was Central), Dynamics AX is indeed a Microsoft Product underpinned by Microsoft Strategic positioning as a Public Cloud provider. It's worth reflecting more around  the fact that Microsoft is getting closer to the Customers and maybe I'll write a post on this later.





Wednesday, April 8, 2015

AX 2012 R3 - Data Import Export Framework - Key not valid for use in specified state

I came accross this issue after replacing the Business Database in a Test Environment. This should not be a very common issue, but I'm sharing it since the possible solution is rather simple.

Scenario

When validating a Data Source (DB) from the form Data Import Export Framework > Setup > Source Data Formats, the following exception was thrown:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Security.Cryptography.CryptographicException: Key not valid for use in specified state.

After examining the underlying code, it pointed to the a specific table.

Solution/workaround

NB! I have deliberately choosen not to reveal the real table or column name (pretty obvious)

  1. Run a simple SELECT from the table.
  2. Check if a value is stored in the "Secret" Column for the Data Source Type (typically DB:Database).
  3. If you find a value in this "Secret" Column, try to run a simple UPDATE statement to clear the value.
  4. Do a Log Off - Log On Sequence in the AX Windows Client and try to validate the Data Source again and you will probably have solved your issue.
Hypothesis

When replacing the Business Database, it's always a Best Practice to create a new GLOBALGUID. It could be that the GLOBALGUID is used as the or part of the Encryption Key. After changing the GLOBALGUID, it's no longer possible to Decrypt the information stored in the table (and that's the way it should be).

Thursday, March 26, 2015

Update on AX 2012 R3 AOS Service Principal Name (SPN)

I wrote about this back in June 2014 and based on the experience gained since this and the fact that Microsoft just published some relevant information, it's necessary with an update to this subject.

First of all, this is all about securing RPC Connections requiring Kerberos Authentication. RPC Connections are connections through the AX Windows Client or the .NET Business Connector. Not all AX Environments will require Kerberos Authentication, but the AOS Binary will by default try to  register (and de-register) a Service Principal Name (SPN) at Service Start up (and Shutdown) to support "a Kerberos and NTLM mix" (see URL for corresponding Microsoft Blog post below).

Secondly, this has nothing to do with the installer confusing a Standard Service Account with a Managed Service Account in AD. The number part of the SPN is in fact the reference to the Service Class for the AOS instance.

And finally, Microsoft recently (March 20 2015) published information on their Microsoft Dynamics AX Support Blog titled Enhanced security with Kerberos only authentication in Microsoft Dynamics AX. This is the only information I have found covering this subject and it contains very valuable information to understand the new behavior. And most importantly it reveals that this is now the default behavior for all Binaries released after AX 2012 R2 CU7 covering AX 2009, AX 2012 R2 and AX 2012 R3.

If not already described as a requirement by the customer, you should ask your customer if they require Kerberos or not. If they require Kerberos, you need to approach this as a separate configuration task since it requires more that the AOS successfully registering the SPN in AD. If the customer does not require Kerberos (can live with NTLM) Authentication and you want to get rid of the Error logged at AOS Instance Start and Stop, all you have to do is
  1. Regedit - Add a new String Value to the Current AOS Configuration with the name authn_regspn
  2. Enter 0 (zero) as the value of authn_regspn

This will disable automatic registration and de-registration of the SPN, and avoid the message from being logged to the Event Log every time the AOS Instance starts and stops. And it will possibly also shave off some seconds from the start and stop sequence.

Additional information can be found in the Dynamics AX Community Forum.

I will try to write about a possible approach to configure AX for Kerberos Authentication in a separate post.

Monday, February 2, 2015

AX 2012 R3 - Data Import Export Framework - Could not load file or assembly Microsoft.SQLServer.ManagedDTS, Version=11.0.0.0

Scenario


  • A single server install of AX 2012 R3 used for Data Migration purposes
  • SQL Server 2012 was originially installed on the server together with all DIXF Components
  • SQL Server 2014 implemented (uninstall SQL Server 2012 Services and Shared Components and install SQL Server 2014 Services with Shared Components) - DIXF Components kept
After restoring databases from another AX solution and performing the needed operations on the databases, Preview in DIXF raised a Stop error in AX with the following message "Could not load file or assembly Microsoft.SQLServer.ManagedDTS, Version=11.0.0.0".

Solution
  1. Stop the AOS instance
  2. Reinstall (uninstall - install) DIXF Components
  3. Start the AOS instance
  4. Verify DIXF Preview functionality
Hypothesis

DIXF registers the reference (in AOT) to this SSIS assembly at DIXF install time.


Monday, January 19, 2015

Microsoft Dynamics Technical Conference 2015

First of all - A Happy New Year!

I attended The AX Technical Conference last year and after following the progress of the upcoming Conference (Session Catalog), I have concluded that I can't justify the cost (attendance, travel, living and lost Income for my employeer) of attending this year. The main reasons are the lack of deep technical sessions (level 400) and the fact that the Conference now also covers CRM which is not on my agenda.

I found last years Conference to be "light" with regards to technical depth and coverage, but my expectations where based on what was called the Technical Briefing back in the days when Damgaard owned Axapta (some years ago - I know) and not the fact that AX 2012 R3 was a functional release. My latest experience before AXTech 2014, was Convergence in 2008 and even this conference (more customer oriented) was more technical compared to AXTech 2014.

I see the dilemma for Microsoft with the current product focus around added functionality (horizontally and vertically). The first event or conference covering AX 7 (AX 2016?) will be more interesting to me, since this release means a real architectural change (product revolution and a tehnological shift). At the time of writing this post (the first one in 2015), this is still unknown, and I don't expect AX 7 to be covered until the next Technical Conference in 2016. I wonder what Microsoft will name this conference when it again quailify for AX Technical Conference...

I have had my first looks at AX 7 CTP4 in Azure and I will probably post some information when the time allows it.