In AX2012 R2, model store database has been separated from business data database. For upgrade purposes, we have one more database – baseline model store. AOS configuration in Windows registry therefore contains keys for three database servers:
- dbserver
- ModelDBServer
- ModelDBServer_baseline
(They’re stored at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Dynamics Server\6.0\02\{config name}\.)
But if you open Microsoft Dynamics AX 2012 Server Configuration, you’ll see only one field for database server name:
If you change the value in Server name field, both database lookups correctly list databases from the new database server. But… only two registry keys are updated: dbserver and ModelDBServer. ModelDBServer_baseline is not changed, therefore AX will try to read baseline model store from the original server. If you had moved databases to another server (as we did), the DB doesn’t exist on the original server anymore.
AOS starts even with this configuration, but the baseline model store is not available – you can’t compare objects with old layers, layer conflict detection wouldn’t work, AOD files can’t be imported to baseline… Fortunately you can find some helpful messages in Event Viewer (on the machine with AOS):
Object Server 01: SQL diagnostics: [Microsoft][SQL Server Native Client 10.0][SQL Server]Login failed for user ‘OurDomain\AosServiceAccount’.. Connect information was: Userid = [], Database = [R2DevBaseLine], Server = [DbServerA], DSN = [], Other = []
Object Server 02: The database DbServerA\ is not recognized as a model store.
DBServerA is the original server, not the one currently configured to be used by AOS – that’s quite clear indication where things went wrong.
The only solution is to update the value of ModelDBServer_baseline directly in registry.
A similar problem may exist in AX2012 (without R2) too, but I didn’t test that.
You can also open the Server Configuration utility, Use Manage, Save Config as File. Open the file in Notepad and scroll to the bottom. Change the settings there. You’ll find the SQL Server Name and optional instancename there.
A second solution for those who are scared of the registry. 😉
Thanks a ton!
Thanks a lot for sharing this valuable information