[
https://issues.apache.org/jira/browse/ARTEMIS-2446?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17571749#comment-17571749
]
Marko Kohtala commented on ARTEMIS-2446:
----------------------------------------
Hi. Since Artemis had this big problem with large messages, I moved to Qpid.
Sorry, but I do not know what is the status of the problem in Artemis.
I won't try Artemis now. We plan to switch our broker at some point, but I can
not help here now.
> AMQP message transmission with UUID properties fails
> ----------------------------------------------------
>
> Key: ARTEMIS-2446
> URL: https://issues.apache.org/jira/browse/ARTEMIS-2446
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: AMQP
> Affects Versions: 2.9.0
> Environment: I run the broker in a Docker container created based on
> [https://github.com/vromero/activemq-artemis-docker.] It is based on
> openjdk:8u222-jdk-stretch image. I've removed the etc and etc-override
> volumes, removed the excess protocol jars, added guest login.
> Reporter: Marko Kohtala
> Priority: Major
>
> I have an application using AMQP messaging and it works with ActiveMQ Artemis
> for small messages, but is failing for larger messages with error:
>
> {noformat}
> 2019-08-06T06:47:01.793175725Z Calculating performance journal ...
> 2019-08-06T06:47:22.324883428Z 144000
> 2019-08-06T06:47:33.378573751Z _ _ _
> 2019-08-06T06:47:33.378610153Z / \ ____| |_ ___ __ __(_) _____
> 2019-08-06T06:47:33.378622654Z / _ \| _ \ __|/ _ \ \/ | |/ __/
> 2019-08-06T06:47:33.378634254Z / ___ \ | \/ |_/ __/ |\/| | |\___ \
> 2019-08-06T06:47:33.378645955Z /_/ \_\| \__\____|_| |_|_|/___ /
> 2019-08-06T06:47:33.378657155Z Apache ActiveMQ Artemis 2.9.0
> 2019-08-06T06:47:33.378668156Z
> 2019-08-06T06:47:33.378679156Z
> 2019-08-06T06:47:37.544726699Z 2019-08-06 06:47:37,477 INFO
> [org.apache.activemq.artemis.integration.bootstrap] AMQ101000: Starting
> ActiveMQ Artemis Server
> 2019-08-06T06:47:38.565550895Z 2019-08-06 06:47:38,564 INFO
> [org.apache.activemq.artemis.core.server] AMQ221000: live Message Broker is
> starting with configuration Broker Configuration
> (clustered=false,journalDirectory=data/journal,bindingsDirectory=data/bindings,largeMessagesDirectory=data/large-messages,pagingDirectory=data/paging)
> 2019-08-06T06:47:38.742539672Z 2019-08-06 06:47:38,738 INFO
> [org.apache.activemq.artemis.core.server] AMQ221012: Using AIO Journal
> 2019-08-06T06:47:39.048523728Z 2019-08-06 06:47:39,043 INFO
> [org.apache.activemq.artemis.core.server] AMQ221057: Global Max Size is being
> adjusted to 1/2 of the JVM max size (-Xmx). being defined as 3,099,590,656
> 2019-08-06T06:47:39.281507988Z 2019-08-06 06:47:39,278 INFO
> [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found:
> [artemis-server]. Adding protocol support for: CORE
> 2019-08-06T06:47:39.281536789Z 2019-08-06 06:47:39,279 INFO
> [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found:
> [artemis-amqp-protocol]. Adding protocol support for: AMQP
> 2019-08-06T06:47:40.433221253Z 2019-08-06 06:47:40,426 INFO
> [org.apache.activemq.artemis.core.server] AMQ221034: Waiting indefinitely to
> obtain live lock
> 2019-08-06T06:47:40.433255155Z 2019-08-06 06:47:40,427 INFO
> [org.apache.activemq.artemis.core.server] AMQ221035: Live Server Obtained
> live lock
> 2019-08-06T06:47:40.927969551Z 2019-08-06 06:47:40,925 INFO
> [org.apache.activemq.artemis.core.server] AMQ221080: Deploying address DLQ
> supporting [ANYCAST]
> 2019-08-06T06:47:41.038512746Z 2019-08-06 06:47:41,035 INFO
> [org.apache.activemq.artemis.core.server] AMQ221003: Deploying ANYCAST queue
> DLQ on address DLQ
> 2019-08-06T06:47:41.822560701Z 2019-08-06 06:47:41,814 INFO
> [org.apache.activemq.artemis.core.server] AMQ221080: Deploying address
> ExpiryQueue supporting [ANYCAST]
> 2019-08-06T06:47:41.831706739Z 2019-08-06 06:47:41,830 INFO
> [org.apache.activemq.artemis.core.server] AMQ221003: Deploying ANYCAST queue
> ExpiryQueue on address ExpiryQueue
> 2019-08-06T06:47:41.857242562Z 2019-08-06 06:47:41,850 INFO
> [org.apache.activemq.artemis.core.server] AMQ221080: Deploying address
> /exchange/amq.fanout/analysis supporting [MULTICAST]
> 2019-08-06T06:47:41.876622291Z 2019-08-06 06:47:41,875 INFO
> [org.apache.activemq.artemis.core.server] AMQ221080: Deploying address
> /topic/heartbeat supporting [MULTICAST]
> 2019-08-06T06:47:43.249534752Z 2019-08-06 06:47:43,242 INFO
> [org.apache.activemq.artemis.core.server] AMQ221020: Started EPOLL Acceptor
> at 0.0.0.0:5672 for protocols [AMQP]
> 2019-08-06T06:47:43.274616353Z 2019-08-06 06:47:43,267 INFO
> [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
> 2019-08-06T06:47:43.274655755Z 2019-08-06 06:47:43,267 INFO
> [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis
> Message Broker version 2.9.0 [ae09008555df,
> nodeID=147edb1d-b816-11e9-a90c-02420ae0020c]
> 2019-08-06T06:47:47.820575804Z 2019-08-06 06:47:47,816 INFO
> [org.apache.activemq.hawtio.branding.PluginContextListener] Initialized
> activemq-branding plugin
> 2019-08-06T06:47:48.735664537Z 2019-08-06 06:47:48,685 INFO
> [org.apache.activemq.hawtio.plugin.PluginContextListener] Initialized
> artemis-plugin plugin
> 2019-08-06T06:47:52.505572720Z 2019-08-06 06:47:52,453 INFO
> [io.hawt.HawtioContextListener] Initialising hawtio services
> 2019-08-06T06:47:52.660606946Z 2019-08-06 06:47:52,660 INFO
> [io.hawt.system.ConfigManager] Configuration will be discovered via system
> properties
> 2019-08-06T06:47:52.682554698Z 2019-08-06 06:47:52,681 INFO
> [io.hawt.jmx.JmxTreeWatcher] Welcome to hawtio 1.5.5 : http://hawt.io/ :
> Don't cha wish your console was hawt like me? ;-)
> 2019-08-06T06:47:52.706528646Z 2019-08-06 06:47:52,701 INFO
> [io.hawt.jmx.UploadManager] Using file upload directory:
> /var/lib/artemis/tmp/uploads
> 2019-08-06T06:47:52.886588371Z 2019-08-06 06:47:52,885 INFO
> [io.hawt.web.AuthenticationFilter] Starting hawtio authentication filter,
> JAAS realm: "activemq" authorized role(s): "amq" role principal classes:
> "org.apache.activemq.artemis.spi.core.security.jaas.RolePrincipal"
> 2019-08-06T06:47:53.130576058Z 2019-08-06 06:47:53,128 INFO
> [io.hawt.web.JolokiaConfiguredAgentServlet] Jolokia overridden property:
> [key=policyLocation, value=file:/var/lib/artemis/etc/jolokia-access.xml]
> 2019-08-06T06:47:53.247602164Z 2019-08-06 06:47:53,237 INFO
> [io.hawt.web.RBACMBeanInvoker] Using MBean
> [hawtio:type=security,area=jmx,rank=0,name=HawtioDummyJMXSecurity] for role
> based access control
> 2019-08-06T06:47:54.733611447Z 2019-08-06 06:47:54,732 INFO
> [io.hawt.system.ProxyWhitelist] Initial proxy whitelist: [localhost,
> 127.0.0.1, 10.224.2.12, ae09008555df]
> 2019-08-06T06:47:55.819600768Z 2019-08-06 06:47:55,818 INFO
> [org.apache.activemq.artemis] AMQ241001: HTTP Server started at
> http://0.0.0.0:8161
> 2019-08-06T06:47:55.819647370Z 2019-08-06 06:47:55,818 INFO
> [org.apache.activemq.artemis] AMQ241002: Artemis Jolokia REST API available
> at http://0.0.0.0:8161/console/jolokia
> 2019-08-06T06:47:55.819661171Z 2019-08-06 06:47:55,819 INFO
> [org.apache.activemq.artemis] AMQ241004: Artemis Console available at
> http://0.0.0.0:8161/console
> 2019-08-06T06:49:43.223569212Z 2019-08-06 06:49:43,190 WARN
> [org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerReceiverContext]
> class java.util.UUID is not a valid property type:
> java.lang.RuntimeException: class java.util.UUID is not a valid property type
> 2019-08-06T06:49:43.223597713Z at
> org.apache.activemq.artemis.protocol.amqp.broker.AMQPMessage.toCore(AMQPMessage.java:695)
> [artemis-amqp-protocol-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.223611514Z at
> org.apache.activemq.artemis.protocol.amqp.broker.AMQPMessage.toCore(AMQPMessage.java:701)
> [artemis-amqp-protocol-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.223623515Z at
> org.apache.activemq.artemis.core.persistence.impl.journal.LargeServerMessageImpl.asLargeMessage(LargeServerMessageImpl.java:63)
> [artemis-server-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.223643615Z at
> org.apache.activemq.artemis.core.persistence.impl.journal.LargeServerMessageImpl.checkLargeMessage(LargeServerMessageImpl.java:56)
> [artemis-server-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.223656216Z at
> org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.send(ServerSessionImpl.java:1631)
> [artemis-server-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.223667717Z at
> org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.serverSend(AMQPSessionCallback.java:510)
> [artemis-amqp-protocol-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.223679017Z at
> org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.serverSend(AMQPSessionCallback.java:470)
> [artemis-amqp-protocol-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.223690518Z at
> org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerReceiverContext.actualDelivery(ProtonServerReceiverContext.java:304)
> [artemis-amqp-protocol-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.223702218Z at
> org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerReceiverContext.onMessage(ProtonServerReceiverContext.java:299)
> [artemis-amqp-protocol-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.223713819Z at
> org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.onDelivery(AMQPConnectionContext.java:541)
> [artemis-amqp-protocol-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.223725619Z at
> org.apache.activemq.artemis.protocol.amqp.proton.handler.Events.dispatch(Events.java:92)
> [artemis-amqp-protocol-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.223738920Z at
> org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.dispatch(ProtonHandler.java:485)
> [artemis-amqp-protocol-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.223751021Z at
> org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.flush(ProtonHandler.java:285)
> [artemis-amqp-protocol-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.223762421Z at
> org.apache.activemq.artemis.protocol.amqp.proton.handler.ProtonHandler.inputBuffer(ProtonHandler.java:242)
> [artemis-amqp-protocol-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.223773722Z at
> org.apache.activemq.artemis.protocol.amqp.proton.AMQPConnectionContext.inputBuffer(AMQPConnectionContext.java:170)
> [artemis-amqp-protocol-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.223785422Z at
> org.apache.activemq.artemis.protocol.amqp.broker.ActiveMQProtonRemotingConnection.bufferReceived(ActiveMQProtonRemotingConnection.java:149)
> [artemis-amqp-protocol-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.223797023Z at
> org.apache.activemq.artemis.core.remoting.server.impl.RemotingServiceImpl$DelegatingBufferHandler.bufferReceived(RemotingServiceImpl.java:649)
> [artemis-server-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.223808723Z at
> org.apache.activemq.artemis.core.remoting.impl.netty.ActiveMQChannelHandler.channelRead(ActiveMQChannelHandler.java:73)
> [artemis-core-client-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.223820324Z at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
> [netty-all-4.1.34.Final.jar:4.1.34.Final]
> 2019-08-06T06:49:43.223831924Z at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
> [netty-all-4.1.34.Final.jar:4.1.34.Final]
> 2019-08-06T06:49:43.223848725Z at
> io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:337)
> [netty-all-4.1.34.Final.jar:4.1.34.Final]
> 2019-08-06T06:49:43.223882727Z at
> io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408)
> [netty-all-4.1.34.Final.jar:4.1.34.Final]
> 2019-08-06T06:49:43.223899028Z at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359)
> [netty-all-4.1.34.Final.jar:4.1.34.Final]
> 2019-08-06T06:49:43.223910728Z at
> io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:345)
> [netty-all-4.1.34.Final.jar:4.1.34.Final]
> 2019-08-06T06:49:43.223922529Z at
> io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930)
> [netty-all-4.1.34.Final.jar:4.1.34.Final]
> 2019-08-06T06:49:43.223936029Z at
> io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:796)
> [netty-all-4.1.34.Final.jar:4.1.34.Final]
> 2019-08-06T06:49:43.223948330Z at
> io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe$1.run(AbstractEpollChannel.java:382)
> [netty-all-4.1.34.Final.jar:4.1.34.Final]
> 2019-08-06T06:49:43.223959931Z at
> io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
> [netty-all-4.1.34.Final.jar:4.1.34.Final]
> 2019-08-06T06:49:43.223971531Z at
> io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
> [netty-all-4.1.34.Final.jar:4.1.34.Final]
> 2019-08-06T06:49:43.223982932Z at
> io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:333)
> [netty-all-4.1.34.Final.jar:4.1.34.Final]
> 2019-08-06T06:49:43.223994632Z at
> io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905)
> [netty-all-4.1.34.Final.jar:4.1.34.Final]
> 2019-08-06T06:49:43.224006533Z at
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
> [artemis-commons-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.224018233Z Caused by: javax.jms.MessageFormatException:
> class java.util.UUID is not a valid property type
> 2019-08-06T06:49:43.224030134Z at
> org.apache.activemq.artemis.protocol.amqp.converter.jms.ServerJMSMapMessage.setObject(ServerJMSMapMessage.java:140)
> [artemis-amqp-protocol-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.224041935Z at
> org.apache.activemq.artemis.protocol.amqp.converter.AMQPMessageSupport.createMapMessage(AMQPMessageSupport.java:363)
> [artemis-amqp-protocol-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.224053535Z at
> org.apache.activemq.artemis.protocol.amqp.converter.AmqpCoreConverter.toCore(AmqpCoreConverter.java:184)
> [artemis-amqp-protocol-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.224065136Z at
> org.apache.activemq.artemis.protocol.amqp.broker.AMQPMessage.toCore(AMQPMessage.java:692)
> [artemis-amqp-protocol-2.9.0.jar:2.9.0]
> 2019-08-06T06:49:43.224076736Z ... 31 more
> 2019-08-06T06:49:43.224087837Z
> {noformat}
> The message structure is as follows (this is a smaller message as decoded by
> Wireshark, and I have removed some redundant and private elements from body
> to only show all the AMQP types used, but larger messages differ in a body
> vbin8 content).
>
>
> {noformat}
> Internet Protocol Version 4, Src: 172.18.0.8, Dst: 172.18.0.2
> Transmission Control Protocol, Src Port: 56776, Dst Port: 5672, Seq: 3932659,
> Ack: 629, Len: 349
> Advanced Message Queueing Protocol
> Length: 349
> Doff: 2
> Type: AMQP (0)
> Channel: 0
> Performative: transfer (20)
> Arguments
> Handle: 1
> Delivery-Id: 2
> Delivery-Tag: 32
> Message-Format: 0
> Settled: False
> More: False
> Message-Header
> Message-Properties
> Correlation-Id: 8e944ee0-b841-11e9-9356-c7125349b5ec
> AMQP-Value (map of 10 elements)
> position (uuid): cd9d2fa0-b817-11e9-b2e1-1fd86d72a1ef
> tags (list of 0 elements)
> dtags (map of 0 elements)
> filename (str8-utf8): 1x1.png
> picture (vbin8): 89504e470d0a1a0a0000000d494844520000000100000001...
> content-type (str8-utf8): image/png
> date-taken (timestamp): Oct 16, 2018 16:48:36.000000000
> {noformat}
> If I read the stack trace and source right, it is converting the body to JMS
> message for storing in large-message storage. This is somewhat unfortunate,
> as I have no JMS use for the message. I am all AMQP and would prefer nothing
> to be changed. UUID is very nice, as the AMQP libraries convert it to native
> types that work well towards other interfaces.
> I've had plans to move some fields with UUID values from body to application
> properties header in hopes they could be used for routing and filtering.
> Seems if I do that there will be another path where similar limitation in
> supported types will hit the message.
> I am interested if there is a workaround I can use while I wait for next
> version with support for remaining AMQP types.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)