Restarting Services After Configuration Changes
Configuration changes are applied only after the new settings are written to persistent storage and reloaded to the services that use them. Most changes can be applied dynamically without restarting any services. However, some configuration changes that you make require restarting the Microsoft Firewall service.
The following actions require restarting the Firewall service:
- Adding, removing, enabling, or disabling an application filter.
- Enabling or disabling IP routing.
- Increasing or decreasing the percentage of physical memory used for caching.
- Reducing or increasing cache size.
- Modifying low-level settings.
- Modifying a tunnel port range.
- Adding or removing a tunnel port range.
- Modifying the settings for the ISA Server Web proxy.
- Enabling and disabling Network Load Balancing integration in an array (available only in Enterprise Edition).
The Save, Import, and ImportFromFile methods recursively write all of the properties of an object and its subobjects to persistent storage. For a collection, these methods also write all of its elements and their properties to persistent storage.
The Save, Import, and ImportFromFile methods have two parameters that control whether the Firewall service will be restarted and whether the new configuration settings will be reloaded to the services:
- The fResetRequiredServices parameter indicates whether the Firewall service will be restarted if it needs to be restarted for any of the changes saved to take effect.
The fReloadConfiguration parameter indicates whether the call will include synchronous reloading of all changes that can be applied dynamically without restarting the Firewall service.
In ISA Server Enterprise Edition, this parameter is ignored, and calls to the Save, Import, and ImportFromFile methods always return only after the information has been written to a Configuration Storage server. If the Firewall service is restarted to apply changes, it will be restarted on each ISA Server computer only after the changes are retrieved from a Configuration Storage server and written to the locally stored configuration.
If the configuration settings being used by the ISA Server services are not updated when new values are written to persistent storage, the configuration settings used by each service will not be updated until the service is restarted or the new settings are reloaded by another call to the Save, Import, or ImportFromFile method.
We recommend making multiple configuration changes and then applying all the changes in a single call to the Save method on an object that contains all the other objects with configuration changes as subobjects. All the unsaved changes can be applied by restarting the required services by using either of the following techniques:
- Calling the Save method with both the fResetRequiredServices and fReloadConfiguration parameters set to True on an object that contains all the other objects with configuration changes as subobjects.
- Calling the Save method with fResetRequiredServices set to False and fReloadConfiguration set to True on an object that contains all the other objects with configuration changes as subobjects and then calling the RestartServices method of the FPCArray object. Alternatively, services can be stopped and started through ISA Server Management, as described in the ISA Server product documentation.
Before calling the Save method, you can use the GetServiceRestartMask method to ascertain which services need to be restarted to apply the unsaved changes. This method retrieves a bitmask that specifies which services need to be restarted for any of the currently unsaved changes in the object on which it was called and all of its subobjects to take effect. Then you can apply the unsaved changes using the techniques described in the previous list.