Skip to main content
Version: 6.12

Dual Path Signalling

With the Dual Path Signalling license module, the Patriot Task Service can be configured to send signals to multiple Patriot Data Services.

The additional data services are not required to be running the same version of Patriot as the Task Service, however the primary data service must have a matching version.

Buffered and Non-Buffered Mode

The Buffered setting controls what happens if the destination data service is unavailable for secondary paths only.

In Buffered mode, the Task Service will cache signals for secondary paths until they can be delivered. Don't use this mode unless the secondary path is expected to be available most of the time. If the secondary path is offline for extended periods, large amounts of buffered signals will be held in the primary task service which can cause problems.

In Non-Buffered mode, the signal will be attempted several times, but then discarded if the service is unavailable. This can cause non-buffered secondary paths to miss signals while offline. This mode is useful for test servers which are normally only online for specific periods while testing.

Offline Behaviour

Dual Path Signalling has some important considerations when used in combination with Offline Behaviour mode in the Task Settings.

If the Offline Behaviour is set to disable local caching in the Task Service, signals are only delivered to the additional data services once the primary data service has accepted the signal.

This means that if the primary data service is unavailable, the additional data services will also stop receiving signals.

Configuration

Additional destination data services are configured via a configuration file placed on the task service server.

The Task Service monitors for the existence and contents of this file, and automatically applies any changes without needing to restart the service. A system signal will be logged each time the configuration is reloaded.

info

Whenever the configuration changes, the Task Service discards any buffered signals for any obsolete destinations (services which have been removed or changed).

Create a new file DualPathConfiguration.xml in the Task Service install directory.

note

If using High Availability, place the file in the Task Service's configured Local Storage Directory

File Structure

<Root>
<Service>
<HostName>SECONDARY</HostName>
<Enabled>true</Enabled>
<Buffered>true</Buffered>
</Service>
<Service>
<HostName>TEST</HostName>
<Enabled>true</Enabled>
<Buffered>false</Buffered>
</Service>
</Root>

Service elements can be added/removed as required. For each Service, set the HostName, Enabled, and Buffered values to suit.

Queue Length Alerts

The Task Service reports the queue length of undelivered signals for the primary data service as well as any additional data services.

Patriot Support strongly recommends enabling performance counter alerts to trigger when the queue length exceeds expectations, to detect issues where signals cannot be delivered to a destination. Allowing these queues to grow over a long period can cause issues with disk space and other system resources.

Each queue is reported separately as well as the total queue length for all queues.

High Availability and Failover

Careful consideration is required when using the Dual-Path Signalling feature in conjunction with High Availability or SQL Mirroring.

If you are using SQL Mirroring or Backup Connections, ensure you do NOT enter the failover/backup data service as an additional destination in DualPathConfiguration.xml. The Task Service will instead switch the primary Data Service automatically.

If you are using a Failover Cluster for your Task Service, ensure that the DualPathConfiguration.xml file is placed in the Local Storage Directory so that it synchronises to the failover nodes. Do not enter the Data Service cluster nodes into the dual-path configuration, instead the Task Service will automatically connect to the active Data Service via its cluster virtual address.

If you wish to switch primary monitoring to one of the configured additional data services (an independent system) without losing buffered signals in the primary task service, the following process must be used:

  • Shut down the primary task service
  • Copy SignalQueue-{SecondaryServerName}.xml from the primary task server to the secondary task server and rename to Signals.xml
  • Start secondary task service