Thursday, July 11, 2013

AX 2012 R2 (CU6) - Analysis Services Wizard freezes when deploying a customized project

Microsoft has solved an issue where the Analysis Services Wizard in AX freezes when you try to deploy a customized project. I experienced this issue as resent as yesterday and after implementing the latest kernel hotfix (KB 2866383 giving build# 6.2.1000.1837), the wizard seems to work as expected.

This fix could be related to AX 2012 R2 in general and not only post CU6 (I don't have more information).

Expect some heavy CPU and Memory load when running the wizard in Update mode (watch the processes in Task Manager to verify that the AX processes is alive and running, and remember that the GUI in the AX Client still is single threaded and a 32-bit process).

AX 2012 R2 CU6 - Updated labels in the SYS layer (SYP)

A quick post explaining my approach based on several other posts in the AX community.

With regards to the "missing labels", it's all about making sure the AOS instance is stopped and started BEFORE you fire up the AX Client to perform the post actions after updating the Model Store. By doing this, you make sure that the label files are synchronized in the file system on the AOS server based on the newly updated labels in the Model Store.

So if You are faced with a form (The Model Store has been modified) showing only label ID's when launching the AX Client, close the AX Client and restart the AOS instance to force the synchronization. This was all I did to solve this.

Looking at the Event Log > Application, you should find an entry (Source > Dynamics Server nn, Event ID > 3002, Type > Information) with a description like this:

Object Server nn : One or more local label files are out of sync with the label files in the model store.

The AOS has copied the correct files to its local directory and the startup of the AOS will proceed.

Copies of files are made in: D:\Program Files\Microsoft Dynamics AX\60\Server\AXTech\bin\Application\appl\Standard\.

File(s) copied from the model store are: AxFPKar.ald;AxFPKcs.ald;AxFPKda.ald;AxFPKde.ald;AxFPKde-at.ald;AxFPKde-ch.ald;AxFPKen-au.ald;AxFPKen-ca.ald;AxFPKen-gb.ald;AxFPKen-ie.ald;... (truncated for better readability)

Tuesday, July 9, 2013

AX 2012 R2 CU6 Enterprise Portal deployment on SharePoint Enterprise 2013

This is a follow up on a previous post (AX 2012 R2 - Issue Deploying Enterprise Portal on SharePoint 2013).

It seems like KB 2851881 is the key to get the deployment to succeed and this fix is included in AX 2012 R2 CU6. The information in Enterprise Portal on Microsoft SharePoint 2013 [AX 2012]  seems to need an update after the release of CU6, since KB 2830441 (setup) and KB 2824690 (Claims Mode authentication) was not needed or actually included in CU6 (not described as part of the update). My guess is that KB 2830441 is included and that KB 2824690 is only needed in environments utilizing Claims based authentication.

After many hours of work, I was finally able to install and deploy Enterprise Portal on SharePoint Enterprise 2013 in a new environment based on AX 2012 R2 with CU6 slipstreamed (Windows Server 2012).

Short summary of the steps taken (bypassing details for all SQL Server services):
  1. Install and configure AX 2012 R2 core solution with CU6 slipstreamed (complete initial check lists)
  2. Optionally install and configure additional AX components (I included Reporting Extensions and Help Server in addition to the Client, Debugger and Management Utilities on each of the dedicted servers in my PoC environment consisting of many servers)
  3. Install and configure SharePoint (see details below)
  4. Install AX Client, Debugger (optionally) and Management Utilities (I met some new issues never seen before at this stage, but I solved this by manually installing the prerequisites)
  5. Create new configurations and verify access to AX (a Best Practise of mine)
  6. Install Enterprise Portal (I choosed to have the installer Configure and Create the Web Site) and wait until setup is finished (can take some time)
Details related to SharePoint
  • Run the SharePoint 2013 Products Preparation Tool (separate program in SP 2013, account for several restarts of the server)
  • Install SharePoint Enterprise 2013 (Complete, do not run the SP Products Configuration Wizard)
  • Download KB 2767999 (March Update for SP Server that seems to be required or the minimum for AX 2012 R2 EP)
  • Apply KB 2767999
  • Download KB 2817414 (June Update for SP Server)
  • Apply KB 2817414
  • Run the SP Products Configuration Wizard (I used "Create a new server farm")
  • Run the SP Configuration Wizard from Central Admin or manually configure the services you need (I used the Wizard approach and I didn't create the Site Collection at this step)
  • Create the Site Collection (Team Site, SharePoint 2013 mode)
  • Start the Claims to Windows Token Service (the AX Prerequisite Validation Utility gives a warning if this service is not running)
I should mention that I'm not an SharePoint expert...

Valuable sources
  • Initial deployment administrative and service accounts in SharePoint 2013 (>)
  • Install SharePoint 2013 on a single server with SQL Server (link) (>)
  • Updates for SharePoint 2013 (>)
Proof (the message given in the light red area "Experience all that SharePoint 2013 has to offer. Start now or Remind me later" is expected, since the site template for EP is not yet updated to SharePoint 2013).

Friday, July 5, 2013

AX 2012 R2 Installation Issue AOS (Firewall)

I recently experienced a strange issue when installing a new AOS instance (AX 2012 R2 CU6) on Windows Server 2012 Standard.

Microsoft has described the firewall requirements for AX 2012 R2 on TechNet (Firewall settings for Microsoft Dynamics AX components [AX 2012]), but they seem to be missing one IMPORTANT rule allowing the new AOS to access the registry remotely, read/write to the Event Log and configure the databases (worth another post later). It took me a while to identify the exact rule to enable, but it was quick and easy to identify that the issue was related to the Windows Firewall on the database server  (by disabling the firewall in the Domain Profile). The missing rule is also depending of the roles and features You have promoted on the server, but in my case, the rule Remote Event Log Management (TCP 445) was Disabled. Enabling this rule, solved my issue. You could of course define a separate rule depending on the requirements in the actual environment.

The Remote Registry Service is involved  (see below information regarding System.IO.IOException: The network path was not found RegistryKey.OpenRemoteBaseKey)in this phase of the installation and on Windows Server 2012, this service is by default configured to start when triggered (needed) > Automatic (Triggered Start).  The Remote Registry issue has been described by others like MVP Brandon George (related to SQL Server 2012 AlwaysOn Availability Groups). This is also mentioned in a comment on the TechNet article referenced above.

Symptoms

1. The Windows Installer (MSI) never shows up when AX Setup tries to install the AOS Component


















2. AX Setup reports the installation as successful


















3. Neither the Service or the Server Configuration application is installed

4. The DynamicsSetupLog contains the following information

2013-07-05 10:11:51Z  === Starting execution phase ===
2013-07-05 10:11:51Z Executing 'Application Object Server (AOS)' this pass.
2013-07-05 10:11:51Z Queueing for installation: Application Object Server (AOS)
2013-07-05 10:11:51Z Component installation task completed successfully.
2013-07-05 10:11:51Z === Setting up Application Object Server (AOS) ===
2013-07-05 10:11:51Z Adding account 'domain\service account' as a login in Microsoft SQL Server.
2013-07-05 10:11:51Z Creating stored procedures for remote sql server. LoginName: 'domain\service account'.
2013-07-05 10:11:51Z Creating stored procedure 'CREATETEMPDBPERMISSIONS_AX-AOS02_01'.
2013-07-05 10:11:51Z Creating stored procedure '[dbo].[CREATESERVERSESSIONS]'.
2013-07-05 10:11:51Z Creating stored procedure '[dbo].[CREATEUSERSESSIONS]'.
2013-07-05 10:11:51Z Creating stored procedure '[dbo].[getNumInternal]'.
2013-07-05 10:11:51Z Creating stored procedure '[dbo].[sp_GetNextRecId]'.
2013-07-05 10:11:51Z isolation level = read committed snapshot
2013-07-05 10:11:51Z Adding account 'domain\service account' as a login in Microsoft SQL Server.
2013-07-05 10:11:51Z Adding account 'domain\service account' as a login in Microsoft SQL Server.
2013-07-05 10:11:51Z Granting AOS account access to database AXTech_model on server SQL Server
2013-07-05 10:12:56Z ******************************************************************************************************

2013-07-05 10:12:56Z Component installation task stopped due to an error.
2013-07-05 10:12:56Z ******************************************************************************************************
2013-07-05 10:12:56Z ******************************************************************************************************

2013-07-05 10:12:56Z The network path was not found.

2013-07-05 10:12:56Z ******************************************************************************************************
2013-07-05 10:12:56Z ******************************************************************************************************

2013-07-05 10:12:56Z System.IO.IOException: The network path was not found.
2013-07-05 10:12:56Z    at Microsoft.Win32.RegistryKey.Win32ErrorStatic(Int32 errorCode, String str)
2013-07-05 10:12:56Z    at Microsoft.Win32.RegistryKey.OpenRemoteBaseKey(RegistryHive hKey, String machineName)
2013-07-05 10:12:56Z    at System.Diagnostics.EventLog.GetEventLogRegKey(String machine, Boolean writable)
2013-07-05 10:12:56Z    at System.Diagnostics.EventLog.FindSourceRegistration(String source, String machineName, Boolean readOnly)
2013-07-05 10:12:56Z    at System.Diagnostics.EventLog.SourceExists(String source, String machineName)
2013-07-05 10:12:56Z    at System.Diagnostics.EventLog.VerifyAndCreateSource(String sourceName, String currentMachineName)
2013-07-05 10:12:56Z    at System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type, Int32 eventID, Int16 category, Byte[] rawData)
2013-07-05 10:12:56Z    at System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type, Int32 eventID)
2013-07-05 10:12:56Z    at Microsoft.Dynamics.AX.Framework.Tools.ModelManagement.AxUtilEventLog.Log(EventLogEntryType eventLogType, AxUtilEventLogType logType, String message)
2013-07-05 10:12:56Z    at Microsoft.Dynamics.AX.Framework.Tools.ModelManagement.AxUtilEventLog.LogSuccess(AxUtil util, AxUtilEventLogType eventLogType, AxUtilAction action, IAxUtilEventLogEntry logEntry)
2013-07-05 10:12:56Z    at Microsoft.Dynamics.AX.Framework.Tools.ModelManagement.AxUtil.GrantPermission(String schemaName)
2013-07-05 10:12:56Z    at Microsoft.Dynamics.Setup.Support.SetupQueue.AOSInstaller.GrantAOSAccounttoDatabase(String databaseServer, String databaseName)
2013-07-05 10:12:56Z    at Microsoft.Dynamics.Setup.Support.SetupQueue.AOSInstaller.AosPreInstallActions()
2013-07-05 10:12:56Z    at Microsoft.Dynamics.Setup.Support.SetupQueue.AOSInstaller.PerformWork()
2013-07-05 10:12:56Z    at Microsoft.Dynamics.Setup.Support.SetupQueue.InstallationClass.DoWork(Object sender, DoWorkEventArgs e)
2013-07-05 10:12:56Z    at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

2013-07-05 10:12:56Z ******************************************************************************************************
2013-07-05 10:12:57Z S260FinishedInfo


2013-07-05 10:14:14Z  === Setup was completed successfully.
2013-07-05 10:14:14Z  === Setup logging ended: 7/5/2013 10:14:14 AM ErrorLevel/ExitCode: '0' ===



Monday, July 1, 2013

AX 2012 R2 - Issue Deploying Enterprise Portal on SharePoint 2013

I recently struggeled with an issue when deploying Enterprise Portal on SharePoint 2013 related to a missing method (removeFromCache) in class SRSReportHelper (the deployment logic is referencing a non existing method).

Likely solution:

  • KB 2851881 - Error is thrown when trying to generate Power View Reports (update in \SYP\Classes\SrsReportHelper)
- Or -
  • KB 2850972 - Cumulative Update 6 for AX 2012 R2 (KB 2851881 is included)

I have not yet verified the hotfix, but I will do that this week (hence "Likely solution").

Hopefully this will save valuable time trouble shooting this issue.

Update:

I'm working my way through a CU6 advanced update right now (Hyper-V on my laptop) and I can verify that the missing method finally is defined and without testing deploying the EP site yet, things looks more promising. From my point of view, this is a really bad example of quality assurance from Microsoft (end of discussion).

Here is what the class SRSReportHelper looks like after implementing CU6 that contains the fix: