Configure Responder Windows Service
This configuration is optional.
You can modify the Responder Windows Service configuration using the Miner.Responder.WindowsService.exe.config file. This configuration file allows you to determine the Responder services started when you use the Start Responder tool in the Start menu. The configuration file is installed here: Miner and Miner\Responder\Server.
When installing Responder Server as an upgrade, this configuration file is reset so that all Count values for all services are set to 0. To use Windows Services, you will need to reset these values. If you're installing for the first time, these values will also need to be set.
The Count values indicate the number of services to run when the user selects Start Responder Windows Service from the Start Menu. Reset these values as appropriate to ensure services are indeed started when the user selects this option. If at any time the login user changes for the Responder services, this configuration will need to be done. Look for the following XML:
<ProgramGroup Name="Data Services"
Path="miner.responder.dataservices.exe"
Arguments="-configuration:default"
Count="0" DevPathHint="d:\aspen\source\miner.responder\miner.responder.dataservices\bin\debug"
RecoveryAction="RestartProgram" />
<ProgramGroup Name="Prediction Services"
Path="miner.responder.predictionservices.exe"
Arguments="-configuration:default"
Count="0" DevPathHint="d:\aspen\source\miner.responder\miner.responder.predictionservices\bin\debug"
RecoveryAction="RestartProgram" />
<ProgramGroup Name="Archive Services"
Path="miner.responder.archiveservices.exe"
Arguments="-configuration:default"
Count="0" DevPathHint="d:\aspen\source\miner.responder\miner.responder.archiveservices\bin\debug"
RecoveryAction="RestartProgram" />
<ProgramGroup Name="Line Display Services"
Path="miner.responder.linedisplayservice.exe"
Arguments="-configuration:default"
Count="0" DevPathHint="d:\aspen\source\miner.responder\miner.responder.linedisplayservice\bin\debug"
RecoveryAction="RestartProgram" />
Set the Count value to the number of services to be started. This will need to be done if you change the login for the Responder Services.
The next configuration allows you to change a few settings. Look for the <ServiceSettings> tags. Between these tags (generally toward the bottom), look for the <WebServer> tag.
<WebServer Enabled="true" Port="7997" AllowRemoteRequests="false" />
You may set the following attribute values, if necessary:
-
Enabled: Determines whether the built-in web server is enabled. An enabled built-in web server provides access to live configuration (i.e., the Responder Services do not have to be restarted after changes using the Responder Windows Server). True=Enabled (default setting); False=Disabled
-
Port: This attribute controls the port number of the web server. Enter the number of any unused port. The default is 7997.
-
AllowRemoteRequests: Determines whether the Responder Windows Service may be accessed using its web page from a remote machine. True=remote access allowed; False=restricts access to local machine only (default setting).
If you modify this file while the Responder Windows Service is running, the changes will not be picked up until the service is re-started.
Memory Control
The following settings may be added to limit or recycle the amount of memory used by each service.
-
MaximumPrivateMemorySizeInKB: This is the maximum amount of memory each service can use. If the services uses this maximum, Responder restarts the service to clear the memory usage. The default is 800,000.
-
MaximumLifetime: Use this value to restart the service and clear the memory usage at set intervals. The value is HH:MM:SS. The default is 00:00:00, which means this functionality is disabled. Add the attribute to the ProgramGroup tag for a service and set the value to greater than 00:00:00 to enable it.
-
RecycleMonitorEnabled: This turns on or off process recycling. The other two settings mentioned here configure process recycling. This defaults to true if it is not specified.
To modify these values add them to the ProgramGroup tag for each service. In the example below, the maximum memory size for Data Services and Prediction Services is 500,000. The maximum memory size for Archive Services remains at the default (800,000), but the service will be reset every 24 hours to clear the memory usage.
<ProgramGroup Name="Data Services"
Path="miner.responder.dataservices.exe"
Arguments="-configuration:default"
Count="0"
DevPathHint="d:\aspen\source\miner.responder\miner.responder.dataservices\bin\debug"
RecoveryAction="RestartProgram"
MaximumPrivateMemorySizeInKB="500000"/>
<ProgramGroup Name="Prediction Services"
Path="miner.responder.predictionservices.exe"
Arguments="-configuration:default"
Count="0" DevPathHint="d:\aspen\source\miner.responder\miner.responder.predictionservices\bin\debug"
RecoveryAction="RestartProgram"
MaximumPrivateMemorySizeInKB="500000"/>
<ProgramGroup Name="Archive Services"
Path="miner.responder.archiveservices.exe"
Arguments="-configuration:default"
Count="0" DevPathHint="d:\aspen\source\miner.responder\miner.responder.archiveservices\bin\debug"
RecoveryAction="RestartProgram"
MaximumLifetime="24:00:00"/>
<ProgramGroup Name="Line Display Services"
Path="miner.responder.linedisplayservice.exe"
Arguments="-configuration:default"
Count="0" DevPathHint="d:\aspen\source\miner.responder\miner.responder.linedisplayservice\bin\debug"
RecoveryAction="RestartProgram"
MaximumLifetime="24:00:00"/>
Notification of Service Failure
The following setting may be added for any of the services to log a message to the event log noting which service failed and for which of the following tests:
-
Data Services: GIS connection, Responder database connection, Prediction Services connection, Archive Services connection, and Line Display Services connection.
-
Prediction Services: GIS connection, Responder database connection, and Data Services connection.
-
Line Display Services: GIS connection, Responder database connection.
-
Archive Services: Archive database connection.
TIP: There are two developer samples related to extending this functionality. The first allows you to check for connectivity failures to other integrated systems (such as an IVR system), and the second sample allows for these notifications to be viewed somewhere other than the Event Log (such as Email, Text Messages, etc.). See Sample — Custom Connection Test & Custom Services Notifier in myArcFM for additional details.
By default, notification of service failure is not enabled. To enable it:
-
Within any of the services, add the following property to the Program Group that you want to run tests in:
ServiceFailNotificationEnabled="true"
-
Any enabled tests for each service program group will be run every 10 minutes by default. To change this, add the following attribute after the Program Groups section of the file, and set the interval to the desired length of time. For example, 30 seconds would be:
<ServicesNotification ServiceFailNotificationInterval="00:05:00" />
IMPORTANT: The Notification of Service Failure tests are designed to NOT run when the system is under load, as this is a time when we are sure the system is responding already. The run will be skipped if the system is active and will only run if the system is idle.Below is an example of all four Responder Services, with only Data Services Service Failure Notification enabled, and with the notification interval set to 30 seconds:
<ProgramGroups>
<ProgramGroup Name="Data Services"
Path="miner.responder.dataservices.exe"
Arguments="-configuration:default"
Count="3"
DevPathHint="%DEVSOURCE%\bin"
RecoveryAction="RestartProgram"
ServiceFailNotificationEnabled="true" />
<ProgramGroup Name="Prediction Services"
Path="miner.responder.predictionservices.exe"
Arguments="-configuration:default"
Count="1"
DevPathHint="%DEVSOURCE%\bin"
RecoveryAction="RestartProgram"
ServiceFailNotificationEnabled="false" />
<ProgramGroup Name="Archive Services"
Path="miner.responder.archiveservices.exe"
Arguments="-configuration:default"
Count="2"
DevPathHint="%DEVSOURCE%\bin"
RecoveryAction="RestartProgram"
RecycleMonitorEnabled="false"
ServiceFailNotificationEnabled="false" />
<ProgramGroup Name="Line Display"
Path="miner.responder.linedisplayservice.exe"
Arguments="-configuration:default"
Count="1"
DevPathHint="%DEVSOURCE%\bin"
RecoveryAction="RestartProgram"
RecycleMonitorEnabled="true"
ServiceFailNotificationEnabled="false" />
</ProgramGroups>
<ServicesNotification ServiceFailNotificationInterval="00:05:00" />
If any test fails, such as no Responder database connection for Line Display Services, the Windows Service logs a message to the event log noting which service failed and for which test, and will restart all instances of that service.
If you enable this for a service but aren't running one of the services it checks connection to, then the test will fail. For example, if you turn this on for Data Services, it will check connections to both Prediction and Archive services. If either of these services are not running on that Responder business server, you can not use Notification of Service Failure, as those tests will always fail.
If the service fails to restart, Windows Service will then handle all restarting of that specific service group.
The ExcludeTests argument allows you to exclude certain types of tests from service failure notifications. To enable this argument, add the following to the ServicesNotification line:
<ServicesNotification ServiceFailNotificationInterval="00:10:00" ExcludeTests="" />
You have the following options for settings:
-
Remoting: Disables the communication check between the Responder Services. For example, if Prediction shuts down, Windows Service won't attempt to restart it.
-
Database: Disables the communication check from the Responder Services to the Responder database.
-
Geodatabase: Disables the communication check from the Responder Services to the geodatabase.
To specify more than one option, they must be comma separated. For example:
ExcludeTests="remoting,database” disables the communication check between the Responder Services and between the Responder Services to the Responder database.