You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Michal Toth (JIRA)" <ji...@apache.org> on 2017/10/11 07:41:00 UTC
[jira] [Closed] (ARTEMIS-1457) Diverts are not working with
Openwire protocol
[ https://issues.apache.org/jira/browse/ARTEMIS-1457?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michal Toth closed ARTEMIS-1457.
--------------------------------
Resolution: Fixed
Fix Version/s: 2.4.0
> Diverts are not working with Openwire protocol
> ----------------------------------------------
>
> Key: ARTEMIS-1457
> URL: https://issues.apache.org/jira/browse/ARTEMIS-1457
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: Broker, OpenWire
> Affects Versions: 2.3.0
> Environment: Diverts exclusive/non-exclusive
> Openwire clients
> Reporter: Michal Toth
> Fix For: 2.4.0
>
>
> Both type of diverts are not working with OpenWire protocol.
> Broker stacktrace error
> {noformat}
> 12:58:10,848 WARN [org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession] Cannot publish to a non-existent Destination: queue://testDivert: javax.jms.InvalidDestinationException: Cannot publish to a non-existent Destination: queue://testDivert
> at org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.lambda$send$0(AMQSession.java:360) [artemis-openwire-protocol-2.0.0.amq-700013-redhat-1.jar:]
> at org.apache.activemq.artemis.core.paging.impl.PagingStoreImpl.checkMemory(PagingStoreImpl.java:696) [artemis-server-2.0.0.amq-700013-redhat-1.jar:2.0.0.amq-700013-redhat-1]
> at org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.send(AMQSession.java:353) [artemis-openwire-protocol-2.0.0.amq-700013-redhat-1.jar:]
> at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processMessage(OpenWireConnection.java:1366) [artemis-openwire-protocol-2.0.0.amq-700013-redhat-1.jar:]
> at org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:768) [activemq-client-5.11.0.redhat-630283.jar:5.11.0.redhat-630283]
> at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.bufferReceived(OpenWireConnection.java:271) [artemis-openwire-protocol-2.0.0.amq-700013-redhat-1.jar:]
> at org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:628) [artemis-server-2.0.0.amq-700013-redhat-1.jar:2.0.0.amq-700013-redhat-1]
> at org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:69) [artemis-core-client-2.0.0.amq-700013-redhat-1.jar:2.0.0.amq-700013-redhat-1]
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-all-4.1.9.Final-redhat-2.jar:4.1.9.Final-redhat-2]
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-all-4.1.9.Final-redhat-2.jar:4.1.9.Final-redhat-2]
> at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [netty-all-4.1.9.Final-redhat-2.jar:4.1.9.Final-redhat-2]
> at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293) [netty-all-4.1.9.Final-redhat-2.jar:4.1.9.Final-redhat-2]
> at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267) [netty-all-4.1.9.Final-redhat-2.jar:4.1.9.Final-redhat-2]
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-all-4.1.9.Final-redhat-2.jar:4.1.9.Final-redhat-2]
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-all-4.1.9.Final-redhat-2.jar:4.1.9.Final-redhat-2]
> at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [netty-all-4.1.9.Final-redhat-2.jar:4.1.9.Final-redhat-2]
> at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334) [netty-all-4.1.9.Final-redhat-2.jar:4.1.9.Final-redhat-2]
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [netty-all-4.1.9.Final-redhat-2.jar:4.1.9.Final-redhat-2]
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [netty-all-4.1.9.Final-redhat-2.jar:4.1.9.Final-redhat-2]
> at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926) [netty-all-4.1.9.Final-redhat-2.jar:4.1.9.Final-redhat-2]
> at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:1017) [netty-all-4.1.9.Final-redhat-2.jar:4.1.9.Final-redhat-2]
> at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:394) [netty-all-4.1.9.Final-redhat-2.jar:4.1.9.Final-redhat-2]
> at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:299) [netty-all-4.1.9.Final-redhat-2.jar:4.1.9.Final-redhat-2]
> at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) [netty-all-4.1.9.Final-redhat-2.jar:4.1.9.Final-redhat-2]
> at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_141]
> 12:58:11,189 WARN [org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed, clearing up resources for session e7c0cd3c-ada9-11e7-8016-525400061be7
> 12:58:11,190 WARN [org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for session e7c0cd3c-ada9-11e7-8016-525400061be7
> 12:58:11,190 WARN [org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed, clearing up resources for session ID:dhcp-145-96.lab.eng.brq.redhat.com-33090-1507633090593-1:1:-1
> 12:58:11,191 WARN [org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for session ID:dhcp-145-96.lab.eng.brq.redhat.com-33090-1507633090593-1:1:-1
> 12:58:11,214 WARN [org.apache.activemq.artemis.core.server] AMQ222061: Client connection failed, clearing up resources for session ID:dhcp-145-96.lab.eng.brq.redhat.com-33090-1507633090593-1:1:1
> 12:58:11,214 WARN [org.apache.activemq.artemis.core.server] AMQ222107: Cleared up resources for session ID:dhcp-145-96.lab.eng.brq.redhat.com-33090-1507633090593-1:1:1
> {noformat}
> Client error
> {noformat}
> $ java -jar /var/dtests/node_data/clients/aoc7.jar sender --log-msgs dict --broker <broker>:61616 --conn-username admin --conn-password admin --address testDivert --count 1
> 12:55:27,010 ERROR Error while sending a message!
> javax.jms.InvalidDestinationException: Cannot publish to a non-existent Destination: queue://testDivert
> at org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.lambda$send$0(AMQSession.java:360)
> at org.apache.activemq.artemis.core.paging.impl.PagingStoreImpl.checkMemory(PagingStoreImpl.java:696)
> at org.apache.activemq.artemis.core.protocol.openwire.amq.AMQSession.send(AMQSession.java:353)
> at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection$CommandProcessor.processMessage(OpenWireConnection.java:1366)
> at org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:768)
> at org.apache.activemq.artemis.core.protocol.openwire.OpenWireConnection.bufferReceived(OpenWireConnection.java:271)
> at org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:628)
> at org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:69)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
> at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
> at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
> at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
> at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
> at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
> at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)
> at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:1017)
> at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:394)
> at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:299)
> at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
> at java.lang.Thread.run(Thread.java:748)
> {noformat}
> {code:xml}
> <configuration xmlns="urn:activemq"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="urn:activemq /schema/artemis-configuration.xsd">
> <core xmlns="urn:activemq:core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="urn:activemq:core ">
> <name>amq</name>
> <persistence-enabled>true</persistence-enabled>
> <!-- this could be ASYNCIO or NIO
> -->
> <journal-type>ASYNCIO</journal-type>
> <paging-directory>./data/paging</paging-directory>
> <bindings-directory>./data/bindings</bindings-directory>
> <journal-directory>./data/journal</journal-directory>
> <large-messages-directory>./data/large-messages</large-messages-directory>
> <journal-datasync>true</journal-datasync>
> <journal-min-files>2</journal-min-files>
> <journal-pool-files>-1</journal-pool-files>
> <!--
> You can verify the network health of a particular NIC by specifying the <network-check-NIC> element.
> <network-check-NIC>theNicName</network-check-NIC>
> -->
> <!--
> Use this to use an HTTP server to validate the network
> <network-check-URL-list>http://www.apache.org</network-check-URL-list> -->
> <!-- <network-check-period>10000</network-check-period> -->
> <!-- <network-check-timeout>1000</network-check-timeout> -->
> <!-- this is a comma separated list, no spaces, just DNS or IPs
> it should accept IPV6
> Warning: Make sure you understand your network topology as this is meant to validate if your network is valid.
> Using IPs that could eventually disappear or be partially visible may defeat the purpose.
> You can use a list of multiple IPs, and if any successful ping will make the server OK to continue running -->
> <!-- <network-check-list>10.0.0.1</network-check-list> -->
> <!-- use this to customize the ping used for ipv4 addresses -->
> <!-- <network-check-ping-command>ping -c 1 -t %d %s</network-check-ping-command> -->
> <!-- use this to customize the ping used for ipv6 addresses -->
> <!-- <network-check-ping6-command>ping6 -c 1 %2$s</network-check-ping6-command> -->
> <!--
> This value was determined through a calculation.
> Your system could perform 0.25 writes per millisecond
> on the current journal configuration.
> That translates as a sync write every 4020000 nanoseconds
> -->
> <journal-buffer-timeout>4020000</journal-buffer-timeout>
> <!-- how often we are looking for how many bytes are being used on the disk in ms -->
> <disk-scan-period>5000</disk-scan-period>
> <!-- once the disk hits this limit the system will block, or close the connection in certain protocols
> that won't support flow control. -->
> <max-disk-usage>90</max-disk-usage>
> <!-- the system will enter into page mode once you hit this limit.
> This is an estimate in bytes of how much the messages are using in memory -->
> <global-max-size>100Mb</global-max-size>
> <!-- should the broker detect dead locks and other issues -->
> <critical-analyzer>true</critical-analyzer>
> <critical-analyzer-timeout>120000</critical-analyzer-timeout>
> <critical-analyzer-check-period>60000</critical-analyzer-check-period>
> <critical-analyzer-policy>HALT</critical-analyzer-policy>
> <diverts>
> <divert name="test-divert">
> <!-- <routing-name>testDivert</routing-name> -->
> <address>testDivert</address>
> <forwarding-address>spyDivert</forwarding-address>
> <exclusive>true</exclusive>
> </divert>
> </diverts>
> <acceptors>
> <!-- useEpoll means: it will use Netty epoll if you are on a system (Linux) that supports it -->
> <!-- amqpCredits: The number of credits sent to AMQP producers -->
> <!-- amqpLowCredits: The server will send the # credits specified at amqpCredits at this low mark -->
> <!-- Acceptor for every supported protocol -->
> <acceptor name="artemis">tcp://0.0.0.0:61616?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300</acceptor>
> <!-- AMQP Acceptor. Listens on default AMQP port for AMQP traffic.-->
> <acceptor name="amqp">tcp://0.0.0.0:5672?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=AMQP;useEpoll=true;amqpCredits=1000;amqpMinCredits=300</acceptor>
> <!-- STOMP Acceptor. -->
> <acceptor name="stomp">tcp://0.0.0.0:61613?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=STOMP;useEpoll=true</acceptor>
> <!-- HornetQ Compatibility Acceptor. Enables HornetQ Core and STOMP for legacy HornetQ clients. -->
> <acceptor name="hornetq">tcp://0.0.0.0:5445?protocols=HORNETQ,STOMP;useEpoll=true</acceptor>
> <!-- MQTT Acceptor -->
> <acceptor name="mqtt">tcp://0.0.0.0:1883?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=MQTT;useEpoll=true</acceptor>
> </acceptors>
> <security-settings>
> <security-setting match="#">
> <permission type="createNonDurableQueue" roles="amq"/>
> <permission type="deleteNonDurableQueue" roles="amq"/>
> <permission type="createDurableQueue" roles="amq"/>
> <permission type="deleteDurableQueue" roles="amq"/>
> <permission type="createAddress" roles="amq"/>
> <permission type="deleteAddress" roles="amq"/>
> <permission type="consume" roles="amq"/>
> <permission type="browse" roles="amq"/>
> <permission type="send" roles="amq"/>
> <!-- we need this otherwise ./artemis data imp wouldn't work -->
> <permission type="manage" roles="amq"/>
> </security-setting>
> </security-settings>
> <address-settings>
> <!-- if you define auto-create on certain queues, management has to be auto-create -->
> <address-setting match="activemq.management#">
> <dead-letter-address>DLQ</dead-letter-address>
> <expiry-address>ExpiryQueue</expiry-address>
> <redelivery-delay>0</redelivery-delay>
> <!-- with -1 only the global-max-size is in use for limiting -->
> <max-size-bytes>-1</max-size-bytes>
> <message-counter-history-day-limit>10</message-counter-history-day-limit>
> <address-full-policy>PAGE</address-full-policy>
> <auto-create-queues>true</auto-create-queues>
> <auto-create-addresses>true</auto-create-addresses>
> <auto-create-jms-queues>true</auto-create-jms-queues>
> <auto-create-jms-topics>true</auto-create-jms-topics>
> </address-setting>
> <!--default for catch all-->
> <address-setting match="#">
> <dead-letter-address>DLQ</dead-letter-address>
> <expiry-address>ExpiryQueue</expiry-address>
> <redelivery-delay>0</redelivery-delay>
> <!-- with -1 only the global-max-size is in use for limiting -->
> <max-size-bytes>-1</max-size-bytes>
> <message-counter-history-day-limit>10</message-counter-history-day-limit>
> <address-full-policy>PAGE</address-full-policy>
> <auto-create-queues>true</auto-create-queues>
> <auto-create-addresses>true</auto-create-addresses>
> <auto-create-jms-queues>true</auto-create-jms-queues>
> <auto-create-jms-topics>true</auto-create-jms-topics>
> </address-setting>
> </address-settings>
> <addresses>
> <address name="testDivert">
> <anycast>
> <queue name="testDivert"/>
> </anycast>
> </address>
> <address name="spyDivert">
> <anycast>
> <queue name="spyDivert"/>
> </anycast>
> </address>
> <address name="DLQ">
> <anycast>
> <queue name="DLQ" />
> </anycast>
> </address>
> <address name="ExpiryQueue">
> <anycast>
> <queue name="ExpiryQueue" />
> </anycast>
> </address>
> </addresses>
> </core>
> </configuration>
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)