EAP 6.4 Configuration File - HornetQ Node A Message Replication Collocated HA and Load Balancing standalone-full.xml

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

Internal

Relevant Sections

<server xmlns="urn:jboss:domain:1.7">
    ...
    <paths>
      <path name="hornetq.pairA.dir" path="${jboss.server.data.dir}/messaging-pairA"/>
      <path name="hornetq.pairB.dir" path="${jboss.server.data.dir}/messaging-pairB"/>
    </paths>
    ...
    <profile>
       ...
        <subsystem xmlns="urn:jboss:domain:messaging:1.4">
            <hornetq-server name="active-node-pair-A">
                <clustered>true</clustered>
                <backup>false</backup>
                <shared-store>false</shared-store>
                <backup-group-name>pair-A</backup-group-name>
                <check-for-live-server>true</check-for-live-server>
                <failover-on-shutdown>true</failover-on-shutdown>
                <cluster-user>hq</cluster-user>
                <cluster-password>hq123</cluster-password>
                <persistence-enabled>true</persistence-enabled>
                <journal-type>NIO</journal-type>
                <journal-min-files>2</journal-min-files>
                <create-bindings-dir>true</create-bindings-dir>
                <create-journal-dir>true</create-journal-dir>
                <paging-directory path="paging" relative-to="hornetq.pairA.dir"/>
                <bindings-directory path="bindings" relative-to="hornetq.pairA.dir"/>
                <journal-directory path="journal" relative-to="hornetq.pairA.dir"/>
                <large-messages-directory path="large-messages" relative-to="hornetq.pairA.dir"/>

                <connectors>
                    <netty-connector name="netty" socket-binding="messaging-pair-A"/>
                    <netty-connector name="pair" socket-binding="messaging-backup-node-pair-A"/>
                    <netty-connector name="load-balanced-pair-B" socket-binding="messaging-active-node-pair-B"/>
                    <in-vm-connector name="in-vm" server-id="0"/>
                </connectors>
                <acceptors>
                    <netty-acceptor name="netty" socket-binding="messaging-pair-A"/>
                    <in-vm-acceptor name="in-vm" server-id="0"/>
                </acceptors>
                <cluster-connections>
                    <cluster-connection name="pair-A-message-replication-ha-cluster">
                        <address>jms</address>
                        <connector-ref>netty</connector-ref>
                        <retry-interval>500</retry-interval>
                        <use-duplicate-detection>true</use-duplicate-detection>
                        <forward-when-no-consumers>true</forward-when-no-consumers>
                        <max-hops>1</max-hops>
                        <static-connectors>
                            <connector-ref>pair</connector-ref>
                        </static-connectors>
                    </cluster-connection>
                    <cluster-connection name="load-balancing">
                        <address>jms</address>
                        <connector-ref>netty</connector-ref>
                        <retry-interval>500</retry-interval>
                        <use-duplicate-detection>true</use-duplicate-detection>
                        <forward-when-no-consumers>false</forward-when-no-consumers>
                        <max-hops>1</max-hops>
                        <static-connectors>
                            <connector-ref>load-balanced-pair-B</connector-ref>
                        </static-connectors>
                    </cluster-connection>
                </cluster-connections>
                <security-settings>
                    <security-setting match="#">
                        <permission type="send" roles="guest"/>
                        <permission type="consume" roles="guest"/>
                        <permission type="createNonDurableQueue" roles="guest"/>
                        <permission type="deleteNonDurableQueue" roles="guest"/>
                    </security-setting>
                </security-settings>
                <address-settings>
                    <!--default for catch all-->
                    <address-setting match="#">
                        <dead-letter-address>jms.queue.DLQ</dead-letter-address>
                        <expiry-address>jms.queue.ExpiryQueue</expiry-address>
                        <redelivery-delay>0</redelivery-delay>
                        <redistribution-delay>1000</redistribution-delay>
                        <max-size-bytes>10485760</max-size-bytes>
                        <address-full-policy>PAGE</address-full-policy>
                        <page-size-bytes>2097152</page-size-bytes>
                        <message-counter-history-day-limit>10</message-counter-history-day-limit>
                    </address-setting>
                </address-settings>
                <jms-connection-factories>
                    <connection-factory name="InVmConnectionFactory">
                        <connectors>
                            <connector-ref connector-name="in-vm"/>
                        </connectors>
                        <entries>
                            <entry name="java:/ConnectionFactory"/>
                        </entries>
                    </connection-factory>
                    <connection-factory name="HighlyAvailableLoadBalancedConnectionFactory">
                        <ha>true</ha>
                        <retry-interval>1000</retry-interval>
                        <retry-interval-multiplier>1.0</retry-interval-multiplier>
                        <reconnect-attempts>-1</reconnect-attempts>
                        <block-on-acknowledge>true</block-on-acknowledge>
                        <connectors>
                            <connector-ref connector-name="netty"/>
                            <connector-ref connector-name="load-balanced-pair-B"/>
                        </connectors>
                        <entries>
                            <entry name="java:jboss/exported/jms/HighlyAvailableLoadBalancedConnectionFactory"/>
                        </entries>
                    </connection-factory>
                    <pooled-connection-factory name="hornetq-ra">
                        <transaction mode="xa"/>
                        <connectors>
                            <connector-ref connector-name="in-vm"/>
                        </connectors>
                        <entries>
                            <entry name="java:/JmsXA"/>
                        </entries>
                    </pooled-connection-factory>
                </jms-connection-factories>
                <jms-destinations>
                    <jms-queue name="ExpiryQueue">
                        <entry name="java:/jms/queue/ExpiryQueue"/>
                    </jms-queue>
                    <jms-queue name="DLQ">
                        <entry name="java:/jms/queue/DLQ"/>
                    </jms-queue>
                   <jms-queue name="novaordis">
                        <entry name="java:/jms/queue/novaordis"/>
                        <entry name="java:jboss/exported/queue/novaordis"/>
                    </jms-queue>
                </jms-destinations>
            </hornetq-server>
            <hornetq-server name="backup-node-pair-B">
                <backup>true</backup>
                <shared-store>false</shared-store>
                <backup-group-name>pair-B</backup-group-name>
                <check-for-live-server>true</check-for-live-server>
                <failover-on-shutdown>true</failover-on-shutdown>
                <cluster-user>hq</cluster-user>
                <cluster-password>hq123</cluster-password>
                <persistence-enabled>true</persistence-enabled>
                <journal-type>NIO</journal-type>
                <journal-min-files>2</journal-min-files>
                <create-bindings-dir>true</create-bindings-dir>
                <create-journal-dir>true</create-journal-dir>
                <paging-directory path="paging" relative-to="hornetq.pairB.dir"/>
                <bindings-directory path="bindings" relative-to="hornetq.pairB.dir"/>
                <journal-directory path="journal" relative-to="hornetq.pairB.dir"/>
                <large-messages-directory path="large-messages" relative-to="hornetq.pairB.dir"/>

                <connectors>
                    <netty-connector name="netty" socket-binding="messaging-pair-B"/>
                    <netty-connector name="pair" socket-binding="messaging-active-node-pair-B"/>
                    <in-vm-connector name="in-vm" server-id="50"/>
                </connectors>
                <acceptors>
                    <netty-acceptor name="netty" socket-binding="messaging-pair-B"/>
                    <in-vm-acceptor name="in-vm" server-id="50"/>
                </acceptors>
                <cluster-connections>
                    <cluster-connection name="pair-B-message-replication-ha-cluster">
                        <address>jms</address>
                        <connector-ref>netty</connector-ref>
                        <retry-interval>500</retry-interval>
                        <use-duplicate-detection>true</use-duplicate-detection>
                        <forward-when-no-consumers>true</forward-when-no-consumers>
                        <max-hops>1</max-hops>
                        <static-connectors>
                            <connector-ref>pair</connector-ref>
                        </static-connectors>
                    </cluster-connection>
                </cluster-connections>
                <security-settings>
                    <security-setting match="#">
                        <permission type="send" roles="guest"/>
                        <permission type="consume" roles="guest"/>
                        <permission type="createNonDurableQueue" roles="guest"/>
                        <permission type="deleteNonDurableQueue" roles="guest"/>
                    </security-setting>
                </security-settings>
                <address-settings>
                    <!--default for catch all-->
                    <address-setting match="#">
                        <dead-letter-address>jms.queue.DLQ</dead-letter-address>
                        <expiry-address>jms.queue.ExpiryQueue</expiry-address>
                        <redelivery-delay>0</redelivery-delay>
                        <redistribution-delay>1000</redistribution-delay>
                        <max-size-bytes>10485760</max-size-bytes>
                        <address-full-policy>PAGE</address-full-policy>
                        <page-size-bytes>2097152</page-size-bytes>
                        <message-counter-history-day-limit>10</message-counter-history-day-limit>
                    </address-setting>
                </address-settings>
            </hornetq-server>
        </subsystem>
    ...
    </profile>
   ...
    <socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
        ...
        <socket-binding name="messaging-pair-A" port="5445"/>
        <socket-binding name="messaging-pair-B" port="5465"/>
        ...
        <outbound-socket-binding name="messaging-backup-node-pair-A">
            <remote-destination host="172.31.30.242" port="5445"/>
        </outbound-socket-binding>
        <outbound-socket-binding name="messaging-active-node-pair-B">
            <remote-destination host="172.31.30.242" port="5465"/>
        </outbound-socket-binding>
    </socket-binding-group>
</server>