After upgrading from ActiveMQ 5.6 to 5.10, reply messages (initiated from a
request / reply transaction) are not being forwarded across the temporary
destination created for the reply message.

Setup: 

*AMQ-A and AMQ-B are configured in a static network of brokers
(configuration below).
*Distributed queue, "test.distributed.queue", will be used for
communication.
*Consumer (that is to handle request / reply) is consuming on AMQ-A
"test.distributed.queue"

Observed Behavior:

*A request/reply message is published to AMQ-B "test.distributed.queue"
**The replyTo Temporary Queue is created, and a consumer is attached to
destination. I see it instantiated on both AMQ brokers via DEBUG level
logging.
*The message is forwarded across the network of brokers : AMQ-B > AMQ-A
"test.distributed.queue"
*The Consumer receives the message & performs the business logic task
*The Consumer sends response to the temporary destination on AMQ-A
** PROBLEM: The message is not forwarded to AMQ-B where the producer is
listening for the response.
*The timeout interval expires
*The temporary destination is destroyed
**I see the message is purged in the AMQ-A log files as the temp destination
is destroyed.

With ActiveMQ 5.6 the reply message is forwarded across the temporary
destination (AMQ-A > AMQ-B) such that the original producer was able to
consume the response. When I turn on debug logging I do not see any errors
or warnings. There is simply a lack of action (forwarding of the message).

Is this a regression and/or did the behavior change? 
Is there something we need to change in our configuration (server or
client)?

Please let me know if I can provide any more information. Log levels,
environment details etc.

Here is our ActiveMQ broker (server) configuration for both AMQ-A and AMQ-B:

<beans
  xmlns="http://www.springframework.org/schema/beans";
  xmlns:amq="http://activemq.apache.org/schema/core";
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
  http://activemq.apache.org/schema/core
http://activemq.apache.org/schema/core/activemq-core.xsd
  http://activemq.apache.org/camel/schema/spring
http://activemq.apache.org/camel/schema/spring/camel-spring.xsd";>

    
    <bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
                <list>
                       
<value>file:///${activemq.base}/conf/credentials.properties</value>
                       
<value>file:/opt/company/activemq/config/activemq.properties</value>
                       
<value>file:/etc/opt/company/activemq/activemq.properties</value>
                </list>
        </property>
    </bean>

    <broker xmlns="http://activemq.apache.org/schema/core"; 
            brokerName="CompanyActiveMQ"
            deleteAllMessagesOnStartup="false" 
            advisorySupport="true">


       
       <destinationPolicy>
           <policyMap>
                <policyEntries>
                    <policyEntry 
                       queue="com.company.product.channels.>" 
                       producerFlowControl="false"
                       memoryLimit="100mb" >

                       <deadLetterStrategy>
                           <individualDeadLetterStrategy
processExpired="false" />
                       </deadLetterStrategy> 
                    </policyEntry>

                </policyEntries>
            </policyMap>
        </destinationPolicy> 

        
        <managementContext>
            <managementContext 
                connectorPort="1099" 
                jmxDomainName="org.apache.activemq" 
                createConnector="false" />
        </managementContext>


        
        <networkConnectors>
                <networkConnector name="activemqNetworkConnector"
decreaseNetworkConsumerPriority="true" networkTTL="2"
uri="static:(tcp://${remote.network.host}:${remote.network.port})">
                        <dynamicallyIncludedDestinations>
                                <queue
physicalName="com.company.product.channels.test.distributed.queue"/>
                        </dynamicallyIncludedDestinations>
                </networkConnector>
        </networkConnectors>


         <persistenceAdapter>
             
             <kahaDB directory="${activemq.base}/data/kahadb" />
        </persistenceAdapter>

        
        <plugins>
           <statisticsBrokerPlugin />
        </plugins>


         <sslContext>
            <sslContext 
                keyStore="file:${activemq.base}/conf/broker.ks" 
                keyStorePassword="password" 
                trustStore="file:${activemq.base}/conf/broker.ts" 
                trustStorePassword="password"/>
        </sslContext>

        
        <systemUsage>
            <systemUsage sendFailIfNoSpace="true"> 
                <memoryUsage>
                    <memoryUsage limit="100 mb" percentUsageMinDelta="20" />
                </memoryUsage>
                <storeUsage>
                    <storeUsage limit="2 gb" name="foo"/>
                </storeUsage>
                <tempUsage>
                    <tempUsage limit="200 mb"/>
                </tempUsage>
            </systemUsage>
        </systemUsage>

        
        <transportConnectors>
            <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"
updateClusterClients="false" rebalanceClusterClients="false"
updateClusterClientsOnRemove="false"/>
            
             
        </transportConnectors>

    </broker>
    
    
</beans>



--
View this message in context: 
http://activemq.2283324.n4.nabble.com/Reply-message-not-forwarded-across-temporary-bridged-destination-tp4688578.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to