This post describes how to replace forms runtime modules without bringing down the Forms Runtime Environment (OC4J_BI_Forms Instance in 9i/10g and Forms Server or jserv) in production systems.
On Unix, when you replace the runtime files in the OS level, then the sessions that are already using these modules will be disconnected with the following error message :
FRM-92101: There was a failure in the Forms Server during startup. This could happen due to invalid configuration. Please look into the web-server log file for details.
On Windows, when trying to copy the file, the following error appears :
Cannot copy MODULENAME: The requested operation cannot be performed on a file with user-mapped section open.
When there is no or very little maintenance periods in production systems to perform such copy operations or there is an urgent need to replace a runtime module, the following method is the recommended method :
Keep two directories including the same fmx/plx/pll/mmx, etc files, and reference one of them in the FORMSXX_PATH in default.env/registry according to the patform. Here FORMSXX_PATH stands for :
FORMS90_PATH for Forms version 9.0.X
FORMS_PATH for Forms version 10.X /11.X.
When you need to replace one/some runtime modules, replace the one in the directory that is *NOT* referenced in the FORMS_PATH variable, then change the reference to the updated directory in FORMS_PATH. From now on, the new connections will start using the updated runtimes.
When all the users logout from their current sessions and connect to application once more, the old directory will be ready for modifications. And at that time you can synchronize the old directory with the new one and continue this way switching the directories whenever needed.
NOTE:151618.1 - Unable to Replace .fmx Files 'On The Fly' During Forms Runtime