[
https://issues.apache.org/jira/browse/ARTEMIS-2446?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17572451#comment-17572451
]
Marko Kohtala commented on ARTEMIS-2446:
----------------------------------------
[~clebertsuconic] I have used nothing else but AMQP, I can assure that!
I recall at that time messages larger than some threshold were stored in
separate large-message store. It did not store AMQP messages, but messages were
converted to core for that storage. And core did not survive the UUID type.
Smaller messages did not go to that large-message store and went through fine
between the AMQP clients.
> 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)