
<!DOCTYPE HTML>
<html lang="" >
    <head>
        <meta charset="UTF-8">
        <title>Diverting and Splitting Message Flows · ActiveMQ Artemis Documentation</title>
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="description" content="">
        <meta name="generator" content="HonKit 4.0.7">
        
        
        
    
    <link rel="stylesheet" href="gitbook/style.css">

    
            
                
                <link rel="stylesheet" href="gitbook/@honkit/honkit-plugin-highlight/website.css">
                
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-search/search.css">
                
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-fontsettings/website.css">
                
            
        

    

    
        
    
        
    
        
    
        
    
        
    
        
    

        
    
    
    <meta name="HandheldFriendly" content="true"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <link rel="apple-touch-icon-precomposed" sizes="152x152" href="gitbook/images/apple-touch-icon-precomposed-152.png">
    <link rel="shortcut icon" href="gitbook/images/favicon.ico" type="image/x-icon">

    
    <link rel="next" href="core-bridges.html" />
    
    
    <link rel="prev" href="client-failover.html" />
    

    </head>
    <body>
        
<div class="book honkit-cloak">
    <div class="book-summary">
        
            
<div id="book-search-input" role="search">
    <input type="text" placeholder="Type to search" />
</div>

            
                <nav role="navigation">
                


<ul class="summary">
    
    

    

    
        
        
    
        <li class="chapter " data-level="1.1" data-path="./">
            
                <a href="./">
            
                    
                    Introduction
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.2" data-path="notice.html">
            
                <a href="notice.html">
            
                    
                    Legal Notice
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.3" data-path="preface.html">
            
                <a href="preface.html">
            
                    
                    Preface
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.4" data-path="project-info.html">
            
                <a href="project-info.html">
            
                    
                    Project Info
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.5" data-path="versions.html">
            
                <a href="versions.html">
            
                    
                    Versions
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.6" data-path="messaging-concepts.html">
            
                <a href="messaging-concepts.html">
            
                    
                    Messaging Concepts
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.7" data-path="architecture.html">
            
                <a href="architecture.html">
            
                    
                    Architecture
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.8" data-path="using-server.html">
            
                <a href="using-server.html">
            
                    
                    Using the Server
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.9" data-path="upgrading.html">
            
                <a href="upgrading.html">
            
                    
                    Upgrading
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.10" >
            
                <span>
            
                    
                    Address
            
                </span>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.10.1" data-path="address-model.html">
            
                <a href="address-model.html">
            
                    
                    Model
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.10.2" data-path="address-settings.html">
            
                <a href="address-settings.html">
            
                    
                    Settings
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.11" data-path="protocols-interoperability.html">
            
                <a href="protocols-interoperability.html">
            
                    
                    Protocols and Interoperability
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.12" data-path="amqp.html">
            
                <a href="amqp.html">
            
                    
                    AMQP
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.12.1" data-path="amqp-broker-connections.html">
            
                <a href="amqp-broker-connections.html">
            
                    
                    Broker Connections
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.13" data-path="mqtt.html">
            
                <a href="mqtt.html">
            
                    
                    MQTT
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.14" data-path="stomp.html">
            
                <a href="stomp.html">
            
                    
                    STOMP
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.15" data-path="openwire.html">
            
                <a href="openwire.html">
            
                    
                    OpenWire
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.16" data-path="core.html">
            
                <a href="core.html">
            
                    
                    Core
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.17" data-path="jms-core-mapping.html">
            
                <a href="jms-core-mapping.html">
            
                    
                    Mapping JMS Concepts to the Core API
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.18" data-path="using-jms.html">
            
                <a href="using-jms.html">
            
                    
                    Using JMS
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.19" data-path="client-classpath.html">
            
                <a href="client-classpath.html">
            
                    
                    The Client Classpath
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.19.1" data-path="client-classpath-jms.html">
            
                <a href="client-classpath-jms.html">
            
                    
                    JMS
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.19.2" data-path="client-classpath-jakarta.html">
            
                <a href="client-classpath-jakarta.html">
            
                    
                    Jakarta
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.20" data-path="examples.html">
            
                <a href="examples.html">
            
                    
                    Examples
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.21" data-path="wildcard-routing.html">
            
                <a href="wildcard-routing.html">
            
                    
                    Routing Messages With Wild Cards
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.22" data-path="wildcard-syntax.html">
            
                <a href="wildcard-syntax.html">
            
                    
                    Wildcard Syntax
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.23" data-path="filter-expressions.html">
            
                <a href="filter-expressions.html">
            
                    
                    Filter Expressions
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.24" data-path="persistence.html">
            
                <a href="persistence.html">
            
                    
                    Persistence
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.25" data-path="configuring-transports.html">
            
                <a href="configuring-transports.html">
            
                    
                    Configuring Transports
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.26" data-path="config-reload.html">
            
                <a href="config-reload.html">
            
                    
                    Configuration Reload
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.27" data-path="connection-ttl.html">
            
                <a href="connection-ttl.html">
            
                    
                    Detecting Dead Connections
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.28" data-path="slow-consumers.html">
            
                <a href="slow-consumers.html">
            
                    
                    Detecting Slow Consumers
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.29" data-path="network-isolation.html">
            
                <a href="network-isolation.html">
            
                    
                    Avoiding Network Isolation
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.30" data-path="critical-analysis.html">
            
                <a href="critical-analysis.html">
            
                    
                    Detecting Broker Issues (Critical Analysis)
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.31" data-path="transaction-config.html">
            
                <a href="transaction-config.html">
            
                    
                    Resource Manager Configuration
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.32" data-path="flow-control.html">
            
                <a href="flow-control.html">
            
                    
                    Flow Control
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.33" data-path="send-guarantees.html">
            
                <a href="send-guarantees.html">
            
                    
                    Guarantees of sends and commits
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.34" data-path="undelivered-messages.html">
            
                <a href="undelivered-messages.html">
            
                    
                    Message Redelivery and Undelivered Messages
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.35" data-path="message-expiry.html">
            
                <a href="message-expiry.html">
            
                    
                    Message Expiry
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.36" data-path="large-messages.html">
            
                <a href="large-messages.html">
            
                    
                    Large Messages
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.37" data-path="paging.html">
            
                <a href="paging.html">
            
                    
                    Paging
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.38" data-path="scheduled-messages.html">
            
                <a href="scheduled-messages.html">
            
                    
                    Scheduled Messages
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.39" data-path="last-value-queues.html">
            
                <a href="last-value-queues.html">
            
                    
                    Last-Value Queues
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.40" data-path="non-destructive-queues.html">
            
                <a href="non-destructive-queues.html">
            
                    
                    Non-Destructive Queues
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.41" data-path="ring-queues.html">
            
                <a href="ring-queues.html">
            
                    
                    Ring Queues
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.42" data-path="retroactive-addresses.html">
            
                <a href="retroactive-addresses.html">
            
                    
                    Retroactive Addresses
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.43" data-path="exclusive-queues.html">
            
                <a href="exclusive-queues.html">
            
                    
                    Exclusive Queues
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.44" data-path="message-grouping.html">
            
                <a href="message-grouping.html">
            
                    
                    Message Grouping
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.45" data-path="consumer-priority.html">
            
                <a href="consumer-priority.html">
            
                    
                    Consumer Priority
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.46" data-path="pre-acknowledge.html">
            
                <a href="pre-acknowledge.html">
            
                    
                    Extra Acknowledge Modes
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.47" data-path="management.html">
            
                <a href="management.html">
            
                    
                    Management
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.48" data-path="management-console.html">
            
                <a href="management-console.html">
            
                    
                    Management Console
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.49" data-path="metrics.html">
            
                <a href="metrics.html">
            
                    
                    Metrics
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.50" data-path="security.html">
            
                <a href="security.html">
            
                    
                    Security
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.51" data-path="masking-passwords.html">
            
                <a href="masking-passwords.html">
            
                    
                    Masking Passwords
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.52" data-path="broker-plugins.html">
            
                <a href="broker-plugins.html">
            
                    
                    Broker Plugins
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.53" data-path="resource-limits.html">
            
                <a href="resource-limits.html">
            
                    
                    Resource Limits
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.54" data-path="jms-bridge.html">
            
                <a href="jms-bridge.html">
            
                    
                    The JMS Bridge
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.55" data-path="client-failover.html">
            
                <a href="client-failover.html">
            
                    
                    Client Failover
            
                </a>
            

            
        </li>
    
        <li class="chapter active" data-level="1.56" data-path="diverts.html">
            
                <a href="diverts.html">
            
                    
                    Diverting and Splitting Message Flows
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.57" data-path="core-bridges.html">
            
                <a href="core-bridges.html">
            
                    
                    Core Bridges
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.58" data-path="transformers.html">
            
                <a href="transformers.html">
            
                    
                    Transformers
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.59" data-path="duplicate-detection.html">
            
                <a href="duplicate-detection.html">
            
                    
                    Duplicate Message Detection
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.60" data-path="clusters.html">
            
                <a href="clusters.html">
            
                    
                    Clusters
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.61" data-path="federation.html">
            
                <a href="federation.html">
            
                    
                    Federation
            
                </a>
            

            
            <ul class="articles">
                
    
        <li class="chapter " data-level="1.61.1" data-path="federation-address.html">
            
                <a href="federation-address.html">
            
                    
                    Address Federation
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.61.2" data-path="federation-queue.html">
            
                <a href="federation-queue.html">
            
                    
                    Queue Federation
            
                </a>
            

            
        </li>
    

            </ul>
            
        </li>
    
        <li class="chapter " data-level="1.62" data-path="ha.html">
            
                <a href="ha.html">
            
                    
                    High Availability and Failover
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.63" data-path="connection-routers.html">
            
                <a href="connection-routers.html">
            
                    
                    Connection Routers
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.64" data-path="graceful-shutdown.html">
            
                <a href="graceful-shutdown.html">
            
                    
                    Graceful Server Shutdown
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.65" data-path="libaio.html">
            
                <a href="libaio.html">
            
                    
                    Libaio Native Libraries
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.66" data-path="thread-pooling.html">
            
                <a href="thread-pooling.html">
            
                    
                    Thread management
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.67" data-path="web-server.html">
            
                <a href="web-server.html">
            
                    
                    Embedded Web Server
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.68" data-path="logging.html">
            
                <a href="logging.html">
            
                    
                    Logging
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.69" data-path="embedding-activemq.html">
            
                <a href="embedding-activemq.html">
            
                    
                    Embedding the Broker
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.70" data-path="karaf.html">
            
                <a href="karaf.html">
            
                    
                    Apache Karaf
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.71" data-path="tomcat.html">
            
                <a href="tomcat.html">
            
                    
                    Apache Tomcat
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.72" data-path="spring-integration.html">
            
                <a href="spring-integration.html">
            
                    
                    Spring Integration
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.73" data-path="cdi-integration.html">
            
                <a href="cdi-integration.html">
            
                    
                    CDI Integration
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.74" data-path="intercepting-operations.html">
            
                <a href="intercepting-operations.html">
            
                    
                    Intercepting Operations
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.75" data-path="data-tools.html">
            
                <a href="data-tools.html">
            
                    
                    Data Tools
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.76" data-path="activation-tools.html">
            
                <a href="activation-tools.html">
            
                    
                    Activation Tools
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.77" data-path="maven-plugin.html">
            
                <a href="maven-plugin.html">
            
                    
                    Maven Plugin
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.78" data-path="unit-testing.html">
            
                <a href="unit-testing.html">
            
                    
                    Unit Testing
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.79" data-path="perf-tuning.html">
            
                <a href="perf-tuning.html">
            
                    
                    Troubleshooting and Performance Tuning
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.80" data-path="perf-tools.html">
            
                <a href="perf-tools.html">
            
                    
                    Performance Tools
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.81" data-path="configuration-index.html">
            
                <a href="configuration-index.html">
            
                    
                    Configuration Reference
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.82" data-path="restart-sequence.html">
            
                <a href="restart-sequence.html">
            
                    
                    Restart Sequence
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="1.83" data-path="resource-adapter.html">
            
                <a href="resource-adapter.html">
            
                    
                    Resource Adapter
            
                </a>
            

            
        </li>
    

    

    <li class="divider"></li>

    <li>
        <a href="https://github.com/honkit/honkit" target="blank" class="gitbook-link">
            Published with HonKit
        </a>
    </li>
</ul>


                </nav>
            
        
    </div>

    <div class="book-body">
        
            <div class="body-inner">
                
                    

<div class="book-header" role="navigation">
    

    <!-- Title -->
    <h1>
        <i class="fa fa-circle-o-notch fa-spin"></i>
        <a href="." >Diverting and Splitting Message Flows</a>
    </h1>
</div>




                    <div class="page-wrapper" tabindex="-1" role="main">
                        <div class="page-inner">
                            
<div id="book-search-results">
    <div class="search-noresults">
    
                                <section class="normal markdown-section">
                                
                                <h1 id="diverting-and-splitting-message-flows">Diverting and Splitting Message Flows</h1>
<p>Apache ActiveMQ Artemis allows you to configure objects called <em>diverts</em> with some
simple server configuration.</p>
<p>Diverts allow you to transparently divert messages routed to one address to one
or more other addresses, without making any changes to any client application
logic.</p>
<p>Diverts can be <em>exclusive</em>, meaning that the message is diverted to the
new address(es), and does not go to the old address at all, or they can be
<em>non-exclusive</em> which means the message continues to go the old address,
and a <em>copy</em> of it is also sent to the new address(es). Non-exclusive
diverts can therefore be used for <em>splitting</em> message flows, e.g. there
may be a requirement to monitor every order sent to an order queue.</p>
<p>When an address has both exclusive and non-exclusive diverts configured,
the exclusive ones are processed first. If any of the exclusive diverts
diverted the message, the non-exclusive ones are not processed.</p>
<p>Diverts can also be configured to have an optional message filter. If
specified then only messages that match the filter will be diverted.</p>
<p>Diverts can apply a particular routing-type to the message, strip the
existing routing type, or simply pass the existing routing-type through.
This is useful in situations where the message may have its routing-type
set but you want to divert it to an address using a different routing-type.
It&apos;s important to keep in mind that a message with the <code>anycast</code>
routing-type will not actually be routed to queues using <code>multicast</code> and
vice-versa. By configuring the <code>routing-type</code> of the divert you have the
flexibility to deal with any situation. Valid values are <code>ANYCAST</code>,
<code>MULTICAST</code>, <code>PASS</code>, &amp; <code>STRIP</code>. The default is <code>STRIP</code>.</p>
<p>Diverts can also be configured to apply a <a href="transformers.html"><code>Transformer</code></a>.
If specified, all diverted messages will have the opportunity of being
transformed by the <code>Transformer</code>. When an address has multiple diverts
configured, all of them receive the same, original message. This means that
the results of a transformer on a message are not directly available for
other diverts or their filters on the same address.</p>
<p>See the documentation on <a href="using-server.html">adding runtime dependencies</a> to 
understand how to make your transformer available to the broker.</p>
<p>A divert will only divert a message to an address on the <em>same server</em>,
however, if you want to divert to an address on a different server, a
common pattern would be to divert to a local store-and-forward queue,
then set up a bridge which consumes from that queue and forwards to an
address on a different server.</p>
<p>Diverts are therefore a very sophisticated concept, which when combined
with bridges can be used to create interesting and complex routings. The
set of diverts on a server can be thought of as a type of routing table
for messages. Combining diverts with bridges allows you to create a
distributed network of reliable routing connections between multiple
geographically distributed servers, creating your global messaging mesh.</p>
<p>Diverts are defined as xml in the <code>broker.xml</code> file at the <code>core</code> attribute level.
There can be zero or more diverts in the file.</p>
<p>Diverted messages get <a href="copied-message-properties.md">special properties</a>.</p>
<p>Please see the examples for a full working example showing you how to
configure and use diverts.</p>
<p>Let&apos;s take a look at some divert examples:</p>
<h2 id="exclusive-divert">Exclusive Divert</h2>
<p>Let&apos;s take a look at an exclusive divert. An exclusive divert diverts
all matching messages that are routed to the old address to the new
address. Matching messages do not get routed to the old address.</p>
<p>Here&apos;s some example xml configuration for an exclusive divert, it&apos;s
taken from the divert example:</p>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">divert</span> <span class="hljs-attr">name</span>=<span class="hljs-string">&quot;prices-divert&quot;</span>&gt;</span>
   <span class="hljs-tag">&lt;<span class="hljs-name">address</span>&gt;</span>priceUpdates<span class="hljs-tag">&lt;/<span class="hljs-name">address</span>&gt;</span>
   <span class="hljs-tag">&lt;<span class="hljs-name">forwarding-address</span>&gt;</span>priceForwarding<span class="hljs-tag">&lt;/<span class="hljs-name">forwarding-address</span>&gt;</span>
   <span class="hljs-tag">&lt;<span class="hljs-name">filter</span> <span class="hljs-attr">string</span>=<span class="hljs-string">&quot;office=&apos;New York&apos;&quot;</span>/&gt;</span>
   <span class="hljs-tag">&lt;<span class="hljs-name">transformer-class-name</span>&gt;</span>
      org.apache.activemq.artemis.jms.example.AddForwardingTimeTransformer
   <span class="hljs-tag">&lt;/<span class="hljs-name">transformer-class-name</span>&gt;</span>
   <span class="hljs-tag">&lt;<span class="hljs-name">exclusive</span>&gt;</span>true<span class="hljs-tag">&lt;/<span class="hljs-name">exclusive</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">divert</span>&gt;</span>
</code></pre>
<p>We define a divert called <code>prices-divert</code> that will divert any
messages sent to the address <code>priceUpdates</code> to another local address 
<code>priceForwarding</code>.</p>
<p>We also specify a message filter string so only messages with the
message property <code>office</code> with value <code>New York</code> will get diverted, all
other messages will continue to be routed to the normal address. The
filter string is optional, if not specified then all messages will be
considered matched.</p>
<p>In this example a transformer class is specified without any configuration
properties. Again this is optional, and if specified the transformer will
be executed for each matching message. This allows you to change the
messages body or properties before it is diverted. In this example the
transformer simply adds a header that records the time the divert happened.
See the <a href="transformers.html">transformer chapter</a> for more details about
transformer-specific configuration.</p>
<p>This example is actually diverting messages to a local store and forward
queue, which is configured with a bridge which forwards the message to
an address on another ActiveMQ Artemis server. Please see the example for
more details.</p>
<h2 id="non-exclusive-divert">Non-exclusive Divert</h2>
<p>Now we&apos;ll take a look at a non-exclusive divert. Non exclusive diverts
are the same as exclusive diverts, but they only forward a <em>copy</em> of the
message to the new address. The original message continues to the old
address</p>
<p>You can therefore think of non-exclusive diverts as <em>splitting</em> a
message flow.</p>
<p>Non exclusive diverts can be configured in the same way as exclusive
diverts with an optional filter and transformer, here&apos;s an example
non-exclusive divert, again from the divert example:</p>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">divert</span> <span class="hljs-attr">name</span>=<span class="hljs-string">&quot;order-divert&quot;</span>&gt;</span>
   <span class="hljs-tag">&lt;<span class="hljs-name">address</span>&gt;</span>orders<span class="hljs-tag">&lt;/<span class="hljs-name">address</span>&gt;</span>
   <span class="hljs-tag">&lt;<span class="hljs-name">forwarding-address</span>&gt;</span>spyTopic<span class="hljs-tag">&lt;/<span class="hljs-name">forwarding-address</span>&gt;</span>
   <span class="hljs-tag">&lt;<span class="hljs-name">exclusive</span>&gt;</span>false<span class="hljs-tag">&lt;/<span class="hljs-name">exclusive</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">divert</span>&gt;</span>
</code></pre>
<p>The above divert example takes a copy of every message sent to the
address &apos;<code>orders</code>&apos; and sends it to a local address called
&apos;<code>spyTopic</code>&apos;.</p>
<h2 id="composite-divert">Composite Divert</h2>
<p>A <em>composite</em> divert is one which forwards messages to multiple addresses. This
pattern is sometimes referred to as <em>fan-out</em>. Configuration is simple. Just
use a comma separated list in <code>forwarding-address</code>, e.g.:</p>
<pre><code class="lang-xml"><span class="hljs-tag">&lt;<span class="hljs-name">divert</span> <span class="hljs-attr">name</span>=<span class="hljs-string">&quot;shipping-divert&quot;</span>&gt;</span>
   <span class="hljs-tag">&lt;<span class="hljs-name">address</span>&gt;</span>shipping<span class="hljs-tag">&lt;/<span class="hljs-name">address</span>&gt;</span>
   <span class="hljs-tag">&lt;<span class="hljs-name">forwarding-address</span>&gt;</span>dallas, chicago, denver<span class="hljs-tag">&lt;/<span class="hljs-name">forwarding-address</span>&gt;</span>
   <span class="hljs-tag">&lt;<span class="hljs-name">exclusive</span>&gt;</span>false<span class="hljs-tag">&lt;/<span class="hljs-name">exclusive</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">divert</span>&gt;</span>
</code></pre>

                                
                                </section>
                            
    </div>
    <div class="search-results">
        <div class="has-results">
            
            <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
            <ul class="search-results-list"></ul>
            
        </div>
        <div class="no-results">
            
            <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
            
        </div>
    </div>
</div>

                        </div>
                    </div>
                
            </div>

            
                
                <a href="client-failover.html" class="navigation navigation-prev " aria-label="Previous page: Client Failover">
                    <i class="fa fa-angle-left"></i>
                </a>
                
                
                <a href="core-bridges.html" class="navigation navigation-next " aria-label="Next page: Core Bridges">
                    <i class="fa fa-angle-right"></i>
                </a>
                
            
        
    </div>

    <script>
        var gitbook = gitbook || [];
        gitbook.push(function() {
            gitbook.page.hasChanged({"page":{"title":"Diverting and Splitting Message Flows","level":"1.56","depth":1,"next":{"title":"Core Bridges","level":"1.57","depth":1,"path":"core-bridges.md","ref":"core-bridges.md","articles":[]},"previous":{"title":"Client Failover","level":"1.55","depth":1,"path":"client-failover.md","ref":"client-failover.md","articles":[]},"dir":"ltr"},"config":{"plugins":[],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"github":"apache/activemq-artemis","theme":"default","githubHost":"https://github.com/","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56},"embedFonts":false},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"version":"2.30.0","title":"ActiveMQ Artemis Documentation","links":{"home":"http://activemq.apache.org/artemis","issues":"https://issues.apache.org/jira/browse/ARTEMIS","contribute":"http://activemq.apache.org/contributing.html"},"gitbook":"3.x.x","description":"ActiveMQ Artemis User Guide and Reference Documentation"},"file":{"path":"diverts.md","mtime":"2023-07-26T17:45:39.759Z","type":"markdown"},"gitbook":{"version":"4.0.7","time":"2023-07-26T17:45:40.181Z"},"basePath":".","book":{"language":""}});
        });
    </script>
</div>

        
    <noscript>
        <style>
            .honkit-cloak {
                display: block !important;
            }
        </style>
    </noscript>
    <script>
        // Restore sidebar state as critical path for prevent layout shift
        function __init__getSidebarState(defaultValue){
            var baseKey = "";
            var key = baseKey + ":sidebar";
            try {
                var value = localStorage[key];
                if (value === undefined) {
                    return defaultValue;
                }
                var parsed = JSON.parse(value);
                return parsed == null ? defaultValue : parsed;
            } catch (e) {
                return defaultValue;
            }
        }
        function __init__restoreLastSidebarState() {
            var isMobile = window.matchMedia("(max-width: 600px)").matches;
            if (isMobile) {
                // Init last state if not mobile
                return;
            }
            var sidebarState = __init__getSidebarState(true);
            var book = document.querySelector(".book");
            // Show sidebar if it enabled
            if (sidebarState && book) {
                book.classList.add("without-animation", "with-summary");
            }
        }

        try {
            __init__restoreLastSidebarState();
        } finally {
            var book = document.querySelector(".book");
            book.classList.remove("honkit-cloak");
        }
    </script>
    <script src="gitbook/gitbook.js"></script>
    <script src="gitbook/theme.js"></script>
    
        
        <script src="gitbook/gitbook-plugin-search/search-engine.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-search/search.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
        
    

    </body>
</html>

