We have recently discovered that a number of properties are no longer configured correctly in our production environment. The biggest offenders have been the Primary and Cluster index properties on Tables in the AOT Data Dictionary. With these properties missing a full DB Sync has removed these indexes from the underlying SQL tables which has obviously resulted in some performance issues. We have reapplied these properties but my biggest concern is how does something like this happen?
For our current code promotion process we take the following steps:
- We use the last daily full SQL backup of both the data and code/model DB's to restore our gold environment.
- Developers merge approved/tested XPO's into the gold environment.
- We use AXBuild to completely build AX.
- We check the log for errors and manually compile or compile forward all objects with errors. Certain objects must be compiled in the client so we expect some errors that when compile in the client compile correctly.
- If there are any other errors we resolve those as well.
- Once we have a clean compile we run a full CIL and full DB Sync
- Don't usually encounter errors during either of these but if we do we resolve those before continuing.
- Create the Model Store from our gold environment
- Import the Model Store into our production environment
- Stop all production AOS's
- Apply the Model Store in our production environment
- Rename all production XppIL folders to XppIL_old
- Start one production AOS
- Run a full CIL on that AOS
- Run a full DB Sync on that AOS
- Copy XppIL folder files (not subfolders) to all other production AOS servers
- Start remaining production AOS's
The general question is how are we loosing these property settings. I give this detail because I also wonder if anything in this process could be causing our property issues.
Also wanted to note that we are renaming and copying the XppIL folders because IL code is not being propagated through to AOS's. It's my understanding that this is supposed to happen but our experience has been that it doesn't always happen correctly. So to make absolutely sure all AOS's are running the same IL we've added this to our process.
Would love to hear everyone's thoughts on how this property issue might happen?