[ 
https://issues.apache.org/jira/browse/DISPATCH-1337?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16844346#comment-16844346
 ] 

Justin Ross commented on DISPATCH-1337:
---------------------------------------

"If not might it be better to have a config that presents them as 
alternatives?" Very much agree.

What does "alternate: yes" mean on an address?  What does it then mean on an 
autoLink?  They seem to mean different things, but they are rendered 
identically in the config file.

How are alternate-capable addresses associated with autoLinks?  A shared 
prefix, plus having "alternate: yes" at the same time?  If so, can I have many 
such matches?  If I can have many, how are messages distributed among them?

If you cannot have multiple matches, then some more explicit connection to the 
alternate address would make sense to me: have the main address name its 
alternate address.  (And perhaps even consider naming a list of alternate 
addresses.)

"Alternate" has the meaning "alter*nate*" (as in, alternating between two 
paths), and in the specification of this you do indeed have some alternation - 
when draining, between the main address and the backup one.  Perhaps a 
different word that avoids this collision: a "backup" or "fallback" address.



> Alternate Destination for Unreachable Addresses
> -----------------------------------------------
>
>                 Key: DISPATCH-1337
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-1337
>             Project: Qpid Dispatch
>          Issue Type: New Feature
>          Components: Router Node
>            Reporter: Ted Ross
>            Assignee: Ted Ross
>            Priority: Major
>             Fix For: 1.8.0
>
>
> This feature allows addresses to be configured such that an alternate 
> destination can be used to receive messages that are not deliverable to any 
> normal consumers on the address.
> Typically, this feature will be used to allow a message broker to store 
> messages that are not routable directly to consumers.  When one or more 
> consumers are attached in the router network, messages shall be delivered 
> directly to the consumers.  Where there are no reachable consumers, 
> deliveries shall then be diverted to the alternate destination.  Once 
> consumers re-connect to the network, messages shall again be delivered 
> directly.
> When a consumer comes online after messages have been stored in a broker, it 
> shall receive the stored messages interleaved with new messages from 
> producers.  No attempt shall be made by the router network to preserve the 
> original delivery order of the messages.
> This feature can be configured by adding the attribute
> {noformat}
>     alternate: yes
> {noformat}
> to an address configuration. This attribute tells the router that any address 
> matching the configuration that appears shall support the alternate 
> destination capability.
> There are two ways to create an alternate destination for an address:
> Using auto-links:
> An auto-link (or a pair of auto-links) can be configured to create an 
> alternate waypoint for an address. For example, assume that there is a 
> route-container connector or listener for a broker called "alternate-broker".
> {noformat}
> address {
>     prefix: position_update
>     alternate: yes
> }
> autoLink {
>     address: position_update.338
>     direction: in
>     connection: alternate-broker
>     alternate: yes
> }
> autoLink {
>     address: position_update.338
>     direction: out
>     connection: alternate-broker
>     alternate: yes
> }
> {noformat}
> The above configuration will use a queue on the broker called 
> "position_update.338" as the alternate destination for direct consumers. 
> Furthermore, since there are both _in_ and _out_ auto-links, the router(s) 
> shall send queued messages to newly attached direct consumers.
> Using terminus capabilities:
> As an alternative to using auto-links, the broker (or any other process) can 
> attach sending and receiving links to the address with terminus-capability 
> "qd.alternate". This will create the same behavior as the above example.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to