I’m on 10.2.100.15 and a few weeks ago I added a UD column and immediately some reports were throwing errors. I had the whole company log out, regenerated the data model, recycled the app server, and we were good.
Question: should I only be adding UD columns after hours so that I can regenerate and recycle the system? If so, how do people handle this that run 24x7?
First,
Regenerating and Recycling does not take you system down, it merely flushes it, one might feel a bit slowness for a few minues as it caches things again. I wouldn’t recommend it during like an MRP Run, but I do Regen and Recycle during Production Hours.
Also what most people tend to forget is when you do a Regen and you Recycle App, you should also Recycle the Report Server (if you have a dedicated Report Server).
Recycle is not Restart.
Second,
I dont know of a way around it, you must have a maintenance window eventually, perhaps during Lunch Time. Worst case if they error out, they can just retry it =)
I develop in a DEV environment and some customizations we deploy during our Monthly Maintenance Window or a slow Friday night (after all deployments with solution workbench, take minutes), not everything has to be in production right away.
Especially Service Connect Workflows, if I can I wait for my window. Then we deploy 10 things.
Third,
If you have multiple App Servers / Report Servers perhaps you can automate it to be Regened + Recycled faster than the human can click - by checking out this article by @Bart_Elia
Fourth,
Some advise against it and recommend:
I guess it depends, I usually take the risk on slower days.
You could also throw in “Stop the Task Agent(s) (if a task agent is running it can keep the AppServer alive)” in the mix, so any reports just remain Queued?
Best practice on this is:
– Stop the Task Agent(s) (if a task agent is running it can keep the AppServer alive)
– Stop the AppServer(s)
– Regenerate the DataModel
– Start the AppServer(s)
– Start the Task Agent(s)
The DataModel is stored in the Database and as an AppServer starts it moves the DataModel to the “Assemblies” file system as specified in Web.Config. Having an AppServer running with an out-of-date DataModel can result in data corruption - particularly if a UD Table is new and does not exist at all in the currently active DataModel.
– @Rich
Closure,
You could mark “Fridays” as your deployment days and educate the business Fridays from 11am to 11:15am we deploy things.
After all it’s not like you are creating a new column every week =) After a while that slows down.
Currently In App Notifications is a Cloud Native Global service only available to SaaS administration. The next of many to Cloud services (Telemetry, Upgrade Services among others are similar).
Which of these becomes available to on premises deployment is TBD.