Installation
Configuration
Management
Monitoring
Troubleshooting
Advanced Configuration
After installation, the Data Hub will accept and queue messages but it will not dispatch them until at least one destination is configured. Additional settings related to the Dispatch Service are also configurable.
To modify the Dispatch Service configuration:
[Application folder]\DispatchService\Dispatch.config
.The <settings>
section defines configuration settings that apply to all destinations or to the Dispatch Service itself. If the setting is missing then the default value is used.
<offlineRetry>
<errorRetry>
<errorGiveup>
<loopLimit>
Via
HTTP header) before being discarded and logged as an error.<discardEmptyMessages>
<dispatchFromEndpoint>
The three time span settings can be expressed either in seconds with an optional fractional part with millisecond precision (ss[.fff]
) or in .NET TimeSpan format ([d.]hh:mm[:ss[.fff]]
).
These time spans may not be negative, nor greater than the largest time span supported by .NET.
Example: Three ways to express a time span of "every 24 hours"
<errorRetry>86400</errorRetry>
<errorRetry>24:00</errorRetry>
<errorRetry>1.00:00</errorRetry>
The <destinations>
section defines the destinations to which the Dispatch Service will attempt to dispatch messages. Each destination is represented by a <destination>
element, with the following attributes:
id
(Required)
_
) and cannot be longer than 127 characters, nor 241 UTF-8 bytes.url
(Required)
durable
true
or omitted, messages that do not result in successful responses will be queued and retried. The destination is durable.false
, incoming messages that do not result in successful responses will be dropped. Any messages queued from before this setting was false
will remain queued. The destination is non-durable.Example: A PreEmptive Analytics for Team Foundation Server instance located on internal machine "patfs.example.internal", to which all incoming messages will be delivered
<destination id="PA TFS" url="http://patfs.example.internal:8000/message/Endpoint.ashx" />
Example: An internal test destination, for which data loss during destination downtime is preferable to using disk space on the Data Hub host
<destination id="QA" url="http://testing.example.internal/endpoint" durable="false" />
Each destination can be configured to only include certain messages, or to exclude certain messages, or a combination of the two. This is done via the following two optional child elements of <destination>
:
<include>...</include>
<exclude>...</exclude>
There are three criteria elements, using a tree-like grammar to form criteria patterns. Each node in the tree is evaluated, starting from the root <include>
or <exclude>
element. If the node fails to match,
none of its children are evaluated, but siblings will continue to be evaluated. If it matches and has children, the matching process continues with its children. If it matches and has no children (i.e. it is a leaf node), then the message
matches the pattern and is processed. Match evaluation continues until a match has been made or the tree has been exhausted.
<all/>
<company id="...">...</company>
id
is a GUID, all GUID formats used by PreEmptive Analytics clients will be checked on incoming messages.<company>
or <application>
.<application id="...">...</application>
id
is a GUID, all GUID formats used by PreEmptive Analytics clients will be checked on incoming messages.<company>
.Another way to think about the match syntax is that sibling nodes have an "OR" relationship, and parent/child nodes have an "AND" relationship.
Example: A destination that will receive all messages for a single specific company
<destination id="PA TFS" url="http://patfs.example.internal:8000/message/Endpoint.ashx">
<include>
<company id="{CAFEBABE-0000-0000-0000-000000000000}" />
</include>
</destination>
Example: A destination that will receive all messages for two specific applications (only)
<destination id="Runtime Intelligence" url="https://so-s.info/endpoint">
<include>
<company id="{CAFEBABE-0000-0000-0000-000000000000}">
<application id="{00ABC123-0000-0000-0000-000000000000}" />
<application id="{00FACADE-0000-0000-0000-000000000000}" />
</company>
</include>
</destination>
Example: A destination that will receive all messages for the above company, except those for a single specific application ID
<destination id="Dev Workbench" url="http://dev-workbench.example.internal/endpoint">
<include>
<company id="{CAFEBABE-0000-0000-0000-000000000000}" />
</include>
<exclude>
<company id="{CAFEBABE-0000-0000-0000-000000000000}">
<application id="{00000BAD-0000-0000-0000-000000000000}" />
</company>
</exclude>
</destination>
More examples can be found in the comments of the Dispatch.config
file.
The Dispatch Service requires no additional configuration to dispatch messages to destinations over SSL, provided the destination supports it. Simply enter the URL with https
as the protocol when configuring destination entries.
Example: A destination configured to listen for HTTPS connections on the default port, 443
<destination id="Secure" url="https://secure.example.internal/endpoint" />
Example: A destination configured to listen for HTTPS connections on port 1889
<destination id="Custom Secure" url="https://secure.example.internal:1889/endpoint" />
Data Hub User Guide Version 1.3.0. Copyright © 2014 PreEmptive Solutions, LLC