Wednesday, December 12, 2012

Upgrading to AX2012 R2 from AX 2012

I would like to share my story on the upgrade process from AX2012 (RTM) without Feature Pack, but with CU4. The upgrade is supported for AX2012 with or without Feature Pack, and you need at least CU3 installed.

Having a working environment with AX2012 on CU4, and code in ISV, VAR, CUS and USR I was ready to begin. I have a FPK-layer with Data Migration Framework elements, but I plan to remove it before the in-place upgrade.

Microsoft has published a good presentation from the latest Dynamics AX Technical Conference, along with the PowerPoint presentation. But for those without access to InformationSource, the guide at MSDN pretty much sums it up. I would strongly advice anyone who is going to do this upgrade to follow the guide on MSDN.

The upgrade from an existing AX2012 RTM (version 6.0.x.x) to AX2012 R2 (version 6.2.x.x / 6.2.158.0) is best done in-place. This means we want to take our existing application and code and upgrade it directly on top of the old version. But before we can do this, we need to prepare an R2 compatible application code so we ensure no data loss. This is the time consuming part of the upgrade, as it involves installation of a seperate R2 environments and developers need to go through any custom code that needs to be adjusted in case it doesn't compile on top of the new R2 SYS layer.

On a high level, the upgrade process looks like this:

  1. Freeze AX2012 code and make sure the environment compiles and works as expected. 
  2. Setup a new server since R2 components can not co-exist with RTM components. 
  3. Duplicate the AX2012 database into a new database intended for "R2 Test".
  4. Run setup and let it create the initial basis for a new R2 environment. Point to the test-database and install AOS, client and debugger for R2.
  5. With Test up, duplicate it to a new environment intended for "R2 development". The AOS can be installed on same server as test. This will be where code review will be done in order to fix code and prepare it for R2. Complete the code upgrade.
  6. Let testers test R2 when it is ready for testing. 
  7. Upgrade AX2012 Live with already prepared R2 compatible axmodels, making sure both code compiles properly and there is no data loss in production.
Now there are a lot of details in each of these steps, all explained in the MSDN article

Right now I am going through the process of preparing all my axmodels for R2 (Step 5), and since I need to go through these axmodels layer by layer, the entire process might take some time. So far the process has gone by as expected. I look forward to run step 7, though. :-)

A couple of tips:
  • Make sure there are enough available disk space on the disks containing your user hive (typically c-disk) and on the database server when running the AX2012 R2 setup. 
  • If you chose to upgrade the Help Server content, you need to uninstall previous translated content - not the Help Server itself, but just the translated content. Use "Programs and Features" (Windows 2008) to locate the packages and just uninstall them one by one.
  • Set aside a lot of time, since the whole process involves multiple time consuming steps (like full compilation).