AX 4.0, 2009 and 2012 Table Synchronization issue.
Commonly I find that AX 4.0 and AX 2009 users complain about synchronization issues. Whether it is a Dynamics Administrator, Developer or Business user they struggle to get fields synchronized across their AOS servers.
Be it a simple field or Table properties, its going to cause problems when your users would say 'This field suddenly disappeared today'
What's causing this,
When you have multiple AOS servers connected, this issue is common. Lets say the field was added in AOS 1. This would show up normally for all users logged into AOS 1.
Now, after some time lot of users are logging, AX routes some of the users to AOS 2 for load balancing. This server would not recognize this field and the changes wont be visible.
How to fix this,
; It is recommended to manually synchronize all AOS servers to update the changes.
Its very easy indeed,
Step 1: Log into the AOS server where you have the fields available. Go to the table you want and click synchronize. [This would push changes back to SQL Server].
Note down the AOS server ID you are logged on to.
Step 2: Go to Administration -> Online Users -> Server instances. Now we have to synchronize other server's in order to update them. So choose the next server and block other servers by selecting them and clicking 'Reject clients'.
Note: Make sure at least one server is accepting clients.
Step 3: Close AX and open it back again. You would be logged back in to other AOS Server
Step 4: Now go to the Table you want to synchronize [If you have added a new field, it might show as UNKNOWN here, newly added table properties and subgroups are usually not visible ]
Step 4.1: Right click and Compile the table
Step 4.2: Right click and Restore the table. Now you can see the changes back.
Do the same for other AOS Servers. After you are done mark other AOS server to accept clients.
Commonly asked questions
Why should you compile the table, why cant you just restore it ?
Reason is it would rebuild the cache and then restore it back from SQL server. If you just do a restore, the cache is not marked and the changes would not be brought down.
How can I automate this ?
There are some floating scripts on the internet to do this. Would update this Job shortly. You can convert this to a periodic job.
I have a batch server running and should I close them and open back ?
Yes it is advised.