LibraryToggle FramesPrintFeedback

Discovery URI

Overview

The discovery URI is a virtual URI that specifies which discovery agent to use for discovering available brokers. The discovery protocol connects to the specified agent and uses that data returned from the agent to build up a list of broker URIs.

URI syntax

Example 4 shows the syntax for a discovery URI.

Example 4. Discovery URI

discovery://(DiscoveryAgentUri)?Options

DiscoveryAgentUri is URI for the discovery agent used to build up the list of available brokers. Discovery agents are described in Discovery Agents.

The options, ?Options, are specified in the form of a query list. The discovery options are described in Table 3. You can also inject transport options as described in Setting options on the discovered transports.

[Tip]Tip

If no options are required, you can drop the parentheses from the URI. The resulting URI would take the form discovery://DiscoveryAgentUri

Transport options

The discovery protocol supports the options described in Table 3.

Table 3. Dynamic Discovery Protocol Options

OptionDefaultDescription
initialReconnectDelay 10Specifies, in milliseconds, how long to wait before the first reconnect attempt.
maxReconnectDelay 30000Specifies, in milliseconds, the maximum amount of time to wait between reconnect attempts.
useExponentialBackOff trueSpecifies if an exponential back-off is used between reconnect attempts.
backOffMultiplier 2Specifies the exponent used in the exponential back-off algorithm.
maxReconnectAttempts 0Specifies the maximum number of reconnect attempts before an error is sent back to the client. 0 specifies unlimited attempts.

Sample URI

Example 5 shows a discovery URI that uses a multicast discovery agent.

Example 5. Discovery Protocol URI

discovery://(multicast://default)?initialReconnectDelay=100

Setting options on the discovered transports

The list of transport options, Options, in the discovery URI can also be used to set options on the discovered transports. If you set an option not listed in Table 3, the URI parser attempts to inject the option setting into every one of the discovered endpoints.

Example 6 shows a discovery URI that sets the TCP connectionTimeout option to 10 seconds.

Example 6. Injecting Transport Options into a Discovered Transport

discovery://(multicast://default)?connectionTimeout=10000

The 10 second timeout setting is injected into every discovered TCP endpoint.

Comments powered by Disqus