[ 
https://issues.apache.org/jira/browse/ARTEMIS-4470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17779546#comment-17779546
 ] 

Timothy A. Bish commented on ARTEMIS-4470:
------------------------------------------

It's going to depend on what you change in the Message, in AMQP the standard 
properties, application-properties, and application-data (the body) are 
considered immutable, but you have decided in a plugin you will violate that 
and mutate them, therefore the message must be re-encoded as internally those 
bits are treated as a binary blob that would be sent unchanged as they are by 
spec immutable.  So this is not a drawback of AMQP is a consequence of your 
choice to mutate the immutable message portion en route.

http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#toc

> Headers loss in message sent from AMQP producer to AMQP consumer
> ----------------------------------------------------------------
>
>                 Key: ARTEMIS-4470
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-4470
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: AMQP, Broker
>    Affects Versions: 2.31.0
>            Reporter: Mohanavalli A
>            Priority: Major
>
> Hi Team,
> Our message flow involves a AMQP Producer, Broker (with custom plugin) and a 
> AMQP Consumer.
> The message is sent by Producer to TEST queue with few headers, the broker 
> plugin adds few more headers on BeforeSend event on the TEST queue. When the 
> message is consumed by the consumer from TEST we see loss of certain headers.
>  
> We started facing this after the recent migration of the consumer from 
> Openwire to AMQP protocol. There is no loss of header when the 
> Producer/Consumer is on openwire.
>  
> Scenario1
> ----------
> Producer(AMQP) to TEST
> Header1:String, Header2:long
>  
> Plugin on BeforeSend event on TEST
> Adds two new headers PluginHeader1(String), PluginHeader2(long)
>  
> Consumer(AMQP) from TEST
> Headers : Header1,Header2 (PluginHeader1, PluginHeader2 missing)
>  
> Additional info: 
> If browsing message in console on TEST: Headers : 
> Header1,Header2,PluginHeader1, PluginHeader2 (All headers are present)
> If the message is moved from TEST to TEST1 queue directly on the Web Console, 
> the headers PluginHeader1, PluginHeader2 are lost on TEST1 queue.
>  
>  
> Scenario2
> ----------
> Producer(AMQP)
> Header1:String, Header2:long
>  
> Plugin
> Adds two new headers PluginHeader1(String), PluginHeader2(long)
>  
> Consumer(Openwire)
> Headers : Header1,Header2,PluginHeader1, PluginHeader2 (All headers are 
> present)
>  
> Additional info: 
> If browsing message in console on TEST: Headers : 
> Header1,Header2,PluginHeader1, PluginHeader2 (All headers are present)
> If the message is moved from TEST to TEST1 queue directly on the Web Console, 
> the headers PluginHeader1, PluginHeader2 are lost on TEST1 queue.
>  
> Scenario3
> ----------
> Producer(Openwire)
> Header1:String, Header2:long
>  
> Plugin
> Adds two new headers PluginHeader1(String), PluginHeader2(long)
>  
> Consumer(AMQP)
> Headers : Header1,Header2,PluginHeader1, PluginHeader2 (All headers are 
> present)
>  
> Additional info: 
> If browsing message in console on TEST: Headers : 
> Header1,Header2,PluginHeader1, PluginHeader2 (All headers are present)
> If the message is moved from TEST to TEST1 queue directly on the Web Console, 
> all headers are present TEST1 queue.
>  
> Thanks,
> Mohanavalli A



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to