Ted Ross created DISPATCH-1337:
----------------------------------

             Summary: 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
             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 al alternative to using autl-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