Cluster never attempts core-bridge and many messages are never delivered
david.berkman Sep 14, 2012 5:03 PMI'm using what I think is a simple enough static setup (we operate in the EC2 cloud, so no discovery before 2.3.0-Alpha), but I see no attempt to create the core bridges in the logs, and I subsequently get many messages that simply fail to arrive at their queue listeners as well, with no errors reported at all. I have also tried using the jgroups-based cluster under 2.3.0-Alpha, with the same results. No attempt to create core bridges, no warnings or errors, and many messages fail to be delivered (once again with no errors). With a single queue everything works fine.
I would like self-discovery (jgroups under 2.3.0-Alpha) but would settle for the static setup working in 2.2.14 or 2.3.0-Alpha. If someone can tell me what log level I need to be at, and what I should be looking for to help debug this I would be grateful. If anyone can't point me to config that works I would be ecstatic.
Here is my current config (please leave out of any replies unless you are marking corrections)...
hornetq-jms.xml (same for all 3 servers)
-------------------------------------------------------------------------
<configuration xmlns="urn:hornetq" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hornetq /schema/hornetq-jms.xsd">
<!--the connection factory used by the example-->
<connection-factory name="ConnectionFactory">
<connectors>
<connector-ref connector-name="netty-connector"/>
</connectors>
<entries>
<entry name="ConnectionFactory"/>
</entries>
<connection-load-balancing-policy-class-name>
com.glu.epoxy.substrate.jms.hornetq.RoundRobinConnectionLoadBalancingPolicy
</connection-load-balancing-policy-class-name>
<ha>true</ha>
<!-- Pause 1 second between connect attempts -->
<retry-interval>1000</retry-interval>
<!-- Multiply subsequent reconnect pauses by this multiplier. This can be used to
implement an exponential back-off. For our purposes we just set to 1.0 so each reconnect
pause is the same length -->
<retry-interval-multiplier>1.0</retry-interval-multiplier>
<!-- Try reconnecting an unlimited number of times (-1 means "unlimited") -->
<reconnect-attempts>-1</reconnect-attempts>
<!-- Fail on no data reception, server - 30 seconds, client - 10 seconds -->
<connection-ttl>30000</connection-ttl>
<client-failure-check-period>10000</client-failure-check-period>
<!-- Do not buffer messages on a consumer -->
<consumer-window-size>0</consumer-window-size>
</connection-factory>
<!--the queue used by the example-->
<queue name="volatile.epoxy.game.protocol.requestQueue">
<entry name="/queue/volatile/epoxy/game/protocol/requestQueue"/>
<durable>false</durable>
</queue>
<topic name="volatile.epoxy.game.protocol.responseTopic">
<entry name="/topic/volatile/epoxy/game/protocol/responseTopic"/>
</topic>
</configuration>
hornetq-configuration.xml for server 0
-------------------------------------------------------------------------
<configuration xmlns="urn:hornetq" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hornetq /schema/hornetq-configuration.xsd">
<clustered>true</clustered>
<cluster-password>P@ssw0rd!</cluster-password>
<bindings-directory>/usr/local/hornetqdata/bindings</bindings-directory>
<journal-directory>/usr/local/hornetqdata/journal</journal-directory>
<large-messages-directory>/usr/local/hornetqdata/largemessages</large-messages-directory>
<paging-directory>/usr/local/hornetqdata/paging</paging-directory>
<journal-type>ASYNCIO</journal-type>
<!-- Management Settings -->
<jmx-management-enabled>true</jmx-management-enabled>
<message-counter-enabled>true</message-counter-enabled>
<message-counter-max-day-history>7</message-counter-max-day-history>
<message-counter-sample-period>10000</message-counter-sample-period>
<!-- Connectors -->
<connectors>
<connector name="netty-connector">
<factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
<param key="host" value="g2esb-1.aws.glu.com"/>
<param key="port" value="5445"/>
</connector>
<connector name="g2esb-2">
<factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
<param key="host" value="g2esb-2.aws.glu.com"/>
<param key="port" value="5445"/>
</connector>
<connector name="g2esb-3">
<factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
<param key="host" value="g2esb-3.aws.glu.com"/>
<param key="port" value="5445"/>
</connector>
</connectors>
<!-- Acceptors -->
<acceptors>
<acceptor name="netty-acceptor">
<factory-class>org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory</factory-class>
<param key="host" value="0.0.0.0"/>
<param key="port" value="5445"/>
</acceptor>
</acceptors>
<cluster-connections>
<cluster-connection name="hornetq-cluster">
<address>jms</address>
<connector-ref>netty-connector</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>g2esb-2</connector-ref>
<connector-ref>g2esb-3</connector-ref>
</static-connectors>
</cluster-connection>
</cluster-connections>
<!-- Other config -->
<security-settings>
<!--security for example queue-->
<security-setting match="jms.#">
<permission type="createDurableQueue" roles="admin"/>
<permission type="deleteDurableQueue" roles="admin"/>
<permission type="createNonDurableQueue" roles="client"/>
<permission type="deleteNonDurableQueue" roles="client"/>
<permission type="consume" roles="client"/>
<permission type="send" roles="client"/>
</security-setting>
</security-settings>
<address-settings>
<address-setting match="jms.#">
<last-value-queue>false</last-value-queue>
<!-- 100m -->
<max-size-bytes>104857600</max-size-bytes>
<!-- 10m -->
<page-size-bytes>10485760</page-size-bytes>
<redistribution-delay>300</redistribution-delay>
<send-to-dla-on-no-route>false</send-to-dla-on-no-route>
<address-full-policy>PAGE</address-full-policy>
</address-setting>
</address-settings>
</configuration>
hornetq-configuration.xml for server 1
-------------------------------------------------------------------------
<configuration xmlns="urn:hornetq" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hornetq /schema/hornetq-configuration.xsd">
<clustered>true</clustered>
<cluster-password>P@ssw0rd!</cluster-password>
<bindings-directory>/usr/local/hornetqdata/bindings</bindings-directory>
<journal-directory>/usr/local/hornetqdata/journal</journal-directory>
<large-messages-directory>/usr/local/hornetqdata/largemessages</large-messages-directory>
<paging-directory>/usr/local/hornetqdata/paging</paging-directory>
<journal-type>ASYNCIO</journal-type>
<!-- Management Settings -->
<jmx-management-enabled>true</jmx-management-enabled>
<message-counter-enabled>true</message-counter-enabled>
<message-counter-max-day-history>7</message-counter-max-day-history>
<message-counter-sample-period>10000</message-counter-sample-period>
<!-- Connectors -->
<connectors>
<connector name="g2esb-1">
<factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
<param key="host" value="g2esb-1.aws.glu.com"/>
<param key="port" value="5445"/>
</connector>
<connector name="netty-connector">
<factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
<param key="host" value="g2esb-2.aws.glu.com"/>
<param key="port" value="5445"/>
</connector>
<connector name="g2esb-3">
<factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
<param key="host" value="g2esb-3.aws.glu.com"/>
<param key="port" value="5445"/>
</connector>
</connectors>
<!-- Acceptors -->
<acceptors>
<acceptor name="netty-acceptor">
<factory-class>org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory</factory-class>
<param key="host" value="0.0.0.0"/>
<param key="port" value="5445"/>
</acceptor>
</acceptors>
<cluster-connections>
<cluster-connection name="hornetq-cluster">
<address>jms</address>
<connector-ref>netty-connector</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>g2esb-1</connector-ref>
<connector-ref>g2esb-3</connector-ref>
</static-connectors>
</cluster-connection>
</cluster-connections>
<!-- Other config -->
<security-settings>
<!--security for example queue-->
<security-setting match="jms.#">
<permission type="createDurableQueue" roles="admin"/>
<permission type="deleteDurableQueue" roles="admin"/>
<permission type="createNonDurableQueue" roles="client"/>
<permission type="deleteNonDurableQueue" roles="client"/>
<permission type="consume" roles="client"/>
<permission type="send" roles="client"/>
</security-setting>
</security-settings>
<address-settings>
<address-setting match="jms.#">
<last-value-queue>false</last-value-queue>
<!-- 100m -->
<max-size-bytes>104857600</max-size-bytes>
<!-- 10m -->
<page-size-bytes>10485760</page-size-bytes>
<redistribution-delay>300</redistribution-delay>
<send-to-dla-on-no-route>false</send-to-dla-on-no-route>
<address-full-policy>PAGE</address-full-policy>
</address-setting>
</address-settings>
</configuration>
hornetq-configuration.xml for server 2
-------------------------------------------------------------------------
<configuration xmlns="urn:hornetq" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hornetq /schema/hornetq-configuration.xsd">
<clustered>true</clustered>
<cluster-password>P@ssw0rd!</cluster-password>
<bindings-directory>/usr/local/hornetqdata/bindings</bindings-directory>
<journal-directory>/usr/local/hornetqdata/journal</journal-directory>
<large-messages-directory>/usr/local/hornetqdata/largemessages</large-messages-directory>
<paging-directory>/usr/local/hornetqdata/paging</paging-directory>
<journal-type>ASYNCIO</journal-type>
<!-- Management Settings -->
<jmx-management-enabled>true</jmx-management-enabled>
<message-counter-enabled>true</message-counter-enabled>
<message-counter-max-day-history>7</message-counter-max-day-history>
<message-counter-sample-period>10000</message-counter-sample-period>
<!-- Connectors -->
<connectors>
<connector name="g2esb-1">
<factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
<param key="host" value="g2esb-1.aws.glu.com"/>
<param key="port" value="5445"/>
</connector>
<connector name="g2esb-2">
<factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
<param key="host" value="g2esb-2.aws.glu.com"/>
<param key="port" value="5445"/>
</connector>
<connector name="netty-connector">
<factory-class>org.hornetq.core.remoting.impl.netty.NettyConnectorFactory</factory-class>
<param key="host" value="g2esb-3.aws.glu.com"/>
<param key="port" value="5445"/>
</connector>
</connectors>
<!-- Acceptors -->
<acceptors>
<acceptor name="netty-acceptor">
<factory-class>org.hornetq.core.remoting.impl.netty.NettyAcceptorFactory</factory-class>
<param key="host" value="0.0.0.0"/>
<param key="port" value="5445"/>
</acceptor>
</acceptors>
<cluster-connections>
<cluster-connection name="hornetq-cluster">
<address>jms</address>
<connector-ref>netty-connector</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>g2esb-1</connector-ref>
<connector-ref>g2esb-2</connector-ref>
</static-connectors>
</cluster-connection>
</cluster-connections>
<!-- Other config -->
<security-settings>
<!--security for example queue-->
<security-setting match="jms.#">
<permission type="createDurableQueue" roles="admin"/>
<permission type="deleteDurableQueue" roles="admin"/>
<permission type="createNonDurableQueue" roles="client"/>
<permission type="deleteNonDurableQueue" roles="client"/>
<permission type="consume" roles="client"/>
<permission type="send" roles="client"/>
</security-setting>
</security-settings>
<address-settings>
<address-setting match="jms.#">
<last-value-queue>false</last-value-queue>
<!-- 100m -->
<max-size-bytes>104857600</max-size-bytes>
<!-- 10m -->
<page-size-bytes>10485760</page-size-bytes>
<redistribution-delay>300</redistribution-delay>
<send-to-dla-on-no-route>false</send-to-dla-on-no-route>
<address-full-policy>PAGE</address-full-policy>
</address-setting>
</address-settings>
</configuration>
Thank you for any help,
David