Very good article Ashok!
If someone is going to calculate age in a production system, one should divide by 365.25 (to take into consideration leap years)
As Alexey said, the issue could be with code, not ECP (as usually ECP is backward compatible)
Make sure that code on app. servers in not mapped (no routine, package mapping) to a remote DB (on database server) - all code should be local to app. server
If your 3 app. servers are identical (for HA, LB reasons) then if you can disable access to 1 app. server and still working with other 2 - it will give you an option to to the app. servers one by one without downtime.
Another issue to concern is cached queries - on such upgrades its good to have all cached queries "un-freeze" to make sure all are compiled.









you can use class: %SYS.DatabaseQuery with "GetDatabaseFreeSpace" classmethod (for single directory) or a "FreeSpace" query (for multiple or *)
Create your own class that Extends %SYS.Task.Definition and add your code in Method OnTask() As %Status
then you can tie this to task manager.