This article applies to Microsoft Dynamics AX for all regions.
Symptoms
Assume that you run Microsoft Dynamics AX 2009 Service Pack 1 (SP1) in an environment that multiple Application Object Server (AOS) services exist in one AX instance. After a record in an EntireTable cached table is updated on one AOS server, the other AOS servers display different values. The data cache is not synchronized between clustered AOS servers.
Additionally, the following error message is logged in the Application log on one or more AOS server:
110 Object Server 01: Dialog issued for client-less session 1: Cannot edit a record
in LastValue (SysLastValue). User ID: , AdminUserSetup.
The SQL database has issued an error.
Cause
This problem occurs because an update conflict occurs. The update conflicts on the record in the SysLastValue table that is used by AOS servers to synchronize the data cache.
Resolution
Hotfix information
A supported hotfix is available from Microsoft. There is a "Hotfix download available" section at the top of this Knowledge Base article. If you are encountering an issue downloading, installing this hotfix, or have other technical support questions, contact your partner or, if enrolled in a support plan directly with Microsoft, you can contact technical support for Microsoft Dynamics and create a new support request. To do this, visit the following Microsoft website:
https://mbs.microsoft.com/support/newstart.aspx You can also contact technical support for Microsoft Dynamics by phone using these links for country specific phone numbers. To do this, visit one of the following Microsoft websites:
Partners
https://mbs.microsoft.com/partnersource/support/Customers
https://mbs.microsoft.com/customersource/support/information/SupportInformation/global_support_contacts_eng.htmIn special cases, charges that are ordinarily incurred for support calls may be canceled if a Technical Support Professional for Microsoft Dynamics and related products determines that a specific update will resolve your problem. The usual support costs will apply to any additional support questions and issues that do not qualify for the specific update in question.
Installation information
If you have customizations for one or more of the methods or the tables that are affected by this hotfix, you must follow these steps:
-
Review the changes that are documented in the .xpo file.
-
Apply these changes in a test environment before you apply the hotfix in a production environment.
For more information about how to install this hotfix, click the following article number to view the article in the Microsoft Knowledge Base:
893082 How to install a Microsoft Dynamics AX hotfix
Prerequisites
You must have Microsoft Dynamics AX 2009 Service Pack 1 installed to apply this hotfix.
Restart requirement
You must restart the Application Object Server (AOS) service after you apply this hotfix.
File information
The global version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.
File name |
File version |
File size |
Date |
Time |
Platform |
---|---|---|---|---|---|
Axupdate.exe |
Not applicable |
61,288 |
05-Jan-2012 |
18:09 |
x86 |
Components32.msp |
Not applicable |
25,328,640 |
05-Jan-2012 |
18:09 |
Not applicable |
Components64.msp |
Not applicable |
30,695,936 |
05-Jan-2012 |
18:10 |
Not applicable |
Objectserver32.msp |
Not applicable |
5,796,352 |
05-Jan-2012 |
18:09 |
Not applicable |
Objectserver64.msp |
Not applicable |
6,630,912 |
05-Jan-2012 |
18:09 |
Not applicable |
Axsetupsp.exe |
5.0.1100.40 |
1,656,680 |
05-Jan-2012 |
18:06 |
x86 |
Cabextractor.dll |
Not applicable |
18,800 |
05-Jan-2012 |
18:09 |
x86 |
Microsoft.dynamics.setup.reportingservices.dll |
5.0.1100.9 |
150,440 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
538,488 |
05-Jan-2012 |
18:08 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
17,336 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
534,392 |
05-Jan-2012 |
18:09 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
16,312 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
530,296 |
05-Jan-2012 |
18:08 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
16,312 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
534,392 |
05-Jan-2012 |
18:09 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
16,824 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
534,392 |
05-Jan-2012 |
18:09 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
16,824 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
530,296 |
05-Jan-2012 |
18:08 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
16,312 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
530,296 |
05-Jan-2012 |
18:08 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
16,312 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
538,488 |
05-Jan-2012 |
18:08 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
16,824 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
538,488 |
05-Jan-2012 |
18:08 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1500.1212 |
16,320 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
534,392 |
05-Jan-2012 |
18:08 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
16,824 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
530,296 |
05-Jan-2012 |
18:08 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
16,312 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
530,296 |
05-Jan-2012 |
18:08 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
16,312 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
542,584 |
05-Jan-2012 |
18:08 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
17,848 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
530,296 |
05-Jan-2012 |
18:08 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
16,312 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
534,392 |
05-Jan-2012 |
18:08 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
16,312 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
530,296 |
05-Jan-2012 |
18:09 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
16,312 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
530,296 |
05-Jan-2012 |
18:08 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
16,312 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
534,392 |
05-Jan-2012 |
18:08 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
16,824 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
534,392 |
05-Jan-2012 |
18:08 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
16,312 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
546,680 |
05-Jan-2012 |
18:08 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
18,872 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
530,296 |
05-Jan-2012 |
18:08 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
16,312 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
558,968 |
05-Jan-2012 |
18:08 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
20,408 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
530,296 |
05-Jan-2012 |
18:08 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
16,312 |
08-Dec-2010 |
22:21 |
x86 |
Axsetupsp.resources.dll |
5.0.1100.40 |
526,200 |
05-Jan-2012 |
18:08 |
x86 |
Microsoft.dynamics.setup.reportingservices.resources.dll |
5.0.1000.45 |
15,800 |
08-Dec-2010 |
22:21 |
x86 |
Cabextractor.dll |
Not applicable |
22,384 |
05-Jan-2012 |
18:10 |
x64 |
Validation of the application hotfix installation
To validate the installation of the application hotfix, open the SysHotfixManifest class in the Application Object Tree (AOT). Then, verify that there is a method whose name includes the Knowledge Base (KB) article number of the installed hotfix. Additionally, you can cross-check the affected objects by comparing the KBXXXXXX.txt file against the objects in the AOT. By doing this, you can make sure that the objects are changed correctly in the SYP layer or in the GLP layer.
Note The XXXXXX placeholder represents the KB article number of the installed hotfix.
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
More Information
For more information, click the following article number to view the article in the Microsoft Knowledge Base:
974255 Impact Analysis feature for Dynamics AX 2009
More Information
Each AOS server checks the SysLastValue record where the elementName value equals the EntireTableCache value, to verify that there are updates to the EntireTable cached tables that have to be re-read in the server's own copy of the data cache. There is one single SysLastValue record that all AOS servers use for all the EntireTable cached tables.
The container field on this record contains a structure with every table and a flushId for each one. The flushId is incremented every time that an AOS server makes an update to the corresponding EntireTable cached table. The flushId is also kept in a matching structure in AOS memory.
The synchronization process
Consider the following scenario:
-
You have a TableA table which is an EntireTable cached table.
-
You have AOS1, AOS2 and AOS3 servers.
-
You update a record in the TableA table on the AOS1 server.
Note The SysLastValue record is updated and the flushId for the table is incremented by one in this situation.
In this scenario, the AOS2 and AOS3 servers check the SysLastValue table one time per minute. When the flushId for the table differs from the one they have in AOS memory, they clear the cache for the table. Additionally, the table will be re-read from the database next time when a user requests it.
If an update conflict occurs in the SysLastValue table, other AOS servers will not be notified of the data change. Therefore, the cached data is out-of-step between AOS servers.
Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use for other considerations.