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

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

Internal

Relevant Sections

<server xmlns="urn:jboss:domain:1.7">

    ...

    <paths>
        <path name="hornetq.active.data.dir" path="active-hornetq-node" relative-to="jboss.server.data.dir"/>
        <path name="hornetq.backup.data.dir" path="backup-hornetq-node" relative-to="jboss.server.data.dir"/>
    </paths>

    ...

    <profile>

        ...

        <subsystem xmlns="urn:jboss:domain:messaging:1.4">

            <hornetq-server name="active-hq-node">

                <backup>false</backup>
                <backup-group-name>Active-On-Node-A</backup-group-name>

                <security-enabled>false</security-enabled>
                <persistence-enabled>true</persistence-enabled>
                <cluster-user>hq</cluster-user>
                <cluster-password>hq</cluster-password>
                <failover-on-shutdown>true</failover-on-shutdown>
                <shared-store>false</shared-store>
                <create-bindings-dir>true</create-bindings-dir>
                <create-journal-dir>true</create-journal-dir>
                <journal-type>NIO</journal-type>
                <journal-min-files>2</journal-min-files>
                <check-for-live-server>true</check-for-live-server>
                <paging-directory path="paging" relative-to="hornetq.active.data.dir"/>
                <bindings-directory path="bindings" relative-to="hornetq.active.data.dir"/>
                <journal-directory path="journal" relative-to="hornetq.active.data.dir"/>
                <large-messages-directory path="large-messages" relative-to="hornetq.active.data.dir"/>

                <connectors>
                    <netty-connector name="netty-inbound" socket-binding="local-hornetq-active"/>
                    <netty-connector name="replication-partner" socket-binding="remote-hornetq-backup"/>
                    <netty-connector name="load-balance-partner" socket-binding="remote-hornetq-active"/>
                    <in-vm-connector name="in-vm" server-id="0"/>
                </connectors>

                <acceptors>
                    <netty-acceptor name="netty" socket-binding="local-hornetq-active"/>
                    <in-vm-acceptor name="in-vm" server-id="0"/>
                </acceptors>

                <cluster-connections>
                    <cluster-connection name="load-balancing">
                        <address>jms</address>
                        <connector-ref>netty-inbound</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>load-balance-partner</connector-ref>
                        </static-connectors>
                    </cluster-connection>
                    <cluster-connection name="replication">
                        <address>jms</address>
                        <connector-ref>netty-inbound</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>replication-partner</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>
                    <address-setting match="#">
                        <dead-letter-address>jms.queue.DLQ</dead-letter-address>
                        <expiry-address>jms.queue.ExpiryQueue</expiry-address>
                        <redelivery-delay>0</redelivery-delay>
                        <max-size-bytes>10485760</max-size-bytes>
                        <page-size-bytes>2097152</page-size-bytes>
                        <address-full-policy>PAGE</address-full-policy>
                        <message-counter-history-day-limit>10</message-counter-history-day-limit>
                        <redistribution-delay>1000</redistribution-delay>
                    </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="RemoteConnectionFactory">
                        <connectors>
                            <connector-ref connector-name="netty-inbound"/>
                            <!-- internal load balancing, we don't expose the partner's connector information to the client -->
                        </connectors>
                        <entries>
                            <entry name="java:jboss/exported/jms/RemoteConnectionFactory"/>
                        </entries>
                        <ha>true</ha>
                        <block-on-acknowledge>true</block-on-acknowledge>
                        <retry-interval>1000</retry-interval>
                        <retry-interval-multiplier>1.0</retry-interval-multiplier>
                        <reconnect-attempts>1</reconnect-attempts>
                    </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="novaordis">
                        <entry name="java:jboss/queue/novaordis"/>
                        <entry name="java:jboss/exported/queue/novaordis"/>
                    </jms-queue>
                </jms-destinations>
            </hornetq-server>


            <hornetq-server name="backup-hq-node">

                <backup>true</backup>
                <backup-group-name>Active-On-Node-B</backup-group-name>

                <security-enabled>false</security-enabled>
                <persistence-enabled>true</persistence-enabled>
                <cluster-user>hq</cluster-user>
                <cluster-password>hq</cluster-password>
                <failover-on-shutdown>true</failover-on-shutdown>
                <shared-store>false</shared-store>
                <create-bindings-dir>true</create-bindings-dir>
                <create-journal-dir>true</create-journal-dir>
                <journal-type>NIO</journal-type>
                <journal-min-files>2</journal-min-files>
                <check-for-live-server>true</check-for-live-server>
                <paging-directory path="paging" relative-to="hornetq.backup.data.dir"/>
                <bindings-directory path="bindings" relative-to="hornetq.backup.data.dir"/>
                <journal-directory path="journal" relative-to="hornetq.backup.data.dir"/>
                <large-messages-directory path="large-messages" relative-to="hornetq.backup.data.dir"/>

                <connectors>
                    <netty-connector name="netty-inbound" socket-binding="local-hornetq-backup"/>
                    <netty-connector name="replication-partner" socket-binding="remote-hornetq-active"/>
                    <in-vm-connector name="in-vm" server-id="50"/>
                </connectors>

                <acceptors>
                    <netty-acceptor name="netty" socket-binding="local-hornetq-backup"/>
                    <in-vm-acceptor name="in-vm" server-id="50"/>
                </acceptors>

                <cluster-connections>
                    <cluster-connection name="replication">
                        <address>jms</address>
                        <connector-ref>netty-inbound</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>replication-partner</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>
                    <address-setting match="#">
                        <dead-letter-address>jms.queue.DLQ</dead-letter-address>
                        <expiry-address>jms.queue.ExpiryQueue</expiry-address>
                        <redelivery-delay>0</redelivery-delay>
                        <max-size-bytes>10485760</max-size-bytes>
                        <page-size-bytes>2097152</page-size-bytes>
                        <address-full-policy>PAGE</address-full-policy>
                        <message-counter-history-day-limit>10</message-counter-history-day-limit>
                        <redistribution-delay>1000</redistribution-delay>
                    </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="local-hornetq-active" port="5445"/>
        <socket-binding name="local-hornetq-backup" port="5465"/>
        <outbound-socket-binding name="remote-hornetq-active">
            <!-- assumes a port offset of 200 -->
            <remote-destination host="localhost" port="5645"/>
        </outbound-socket-binding>
        <outbound-socket-binding name="remote-hornetq-backup">
            <!-- assumes a port offset of 200 -->
            <remote-destination host="localhost" port="5665"/>
        </outbound-socket-binding>

    </socket-binding-group>
</server>