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

clebert suconic edited comment on ARTEMIS-1928 at 6/23/18 2:21 PM:
-------------------------------------------------------------------

what is large, is a relative concept... in the case of ActiveMQ Artemis we take 
the journal-buffer-size as the limiter. The default is 100K. (what we 
considered large).

 

Add this parameter, right after journal-buffer-timeout for instance:

 

<journal-buffer-timeout>68000</journal-buffer-timeout>

<journal-buffer-size>200K</journal-buffer-size>

 

 

 

Regarding the type, I'm interested on how you are setting the body of your 
messages, when converting messages we can only deal with these datatypes:

 

[https://github.com/apache/activemq-artemis/blob/2c8b6b4aee7b03f2872f04f1d8caaa9d85436216/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/converter/AmqpCoreConverter.java#L111-L177]

 

 

I'm particularly interested on what type of body you had that we didn't know 
how to convert.

 

 

But if you bypass conversion by increasing the journal-buffer-size you 
shouldn't have an issue any longer. (we will fix the large messages for AMQP in 
the next version.. but it should be ok for you now).

 

 

I suggest you open an user forum for tweaking your configurations now to bypass 
large messages.

 

 

I will be away for 2 weeks in vacations. but there are plenty of people able to 
help here.


was (Author: clebertsuconic):
what is large, is a relative concept... in the case of ActiveMQ Artemis we take 
the journal-buffer-size as the limiter:

 

Add this parameter, right after journal-buffer-timeout for instance:

 

<journal-buffer-timeout>68000</journal-buffer-timeout>

<journal-buffer-size>200K</journal-buffer-size>

 

 

 

Regarding the type, I'm interested on how you are setting the body of your 
messages, when converting messages we can only deal with these datatypes:

 

[https://github.com/apache/activemq-artemis/blob/2c8b6b4aee7b03f2872f04f1d8caaa9d85436216/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/converter/AmqpCoreConverter.java#L111-L177]

 

 

I'm particularly interested on what type of body you had that we didn't know 
how to convert.

 

 

But if you bypass conversion by increasing the journal-buffer-size you 
shouldn't have an issue any longer. (we will fix the large messages for AMQP in 
the next version.. but it should be ok for you now).

 

 

I suggest you open an user forum for tweaking your configurations now to bypass 
large messages.

 

 

I will be away for 2 weeks in vacations. but there are plenty of people able to 
help here.

> Message conversion on certain body types will cause NPE
> -------------------------------------------------------
>
>                 Key: ARTEMIS-1928
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-1928
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: AMQP, Broker
>    Affects Versions: 2.6.1
>         Environment: * Broker Version: 2.6.1
>  * Client: AMQPNetLite v2.1.2
>  * Host OS: Linux node 4.9.0-6-amd64 #1 SMP Debian 4.9.88-1+deb9u1 
> (2018-05-07) x86_64 GNU/Linux
>  * Host Platform: AWS EC2
>  * broker.xml from node1 attached as node1-broker.xml
>  * broker.xml from node2 attached as node2-broker.xml
>            Reporter: Simon Chalmers
>            Priority: Critical
>             Fix For: 2.7.0, 2.6.3
>
>         Attachments: node1-broker.xml, node2-broker.xml
>
>
>  
> Steps to produce, using a producing application (running AMQPNetLite) 
> connecting to node1 of the cluster:
>  * Create queue1, publish 199 messages to it
>  * Create queue2, publish 1 message to it
> Running a consuming application (AMQPNetLite) connecting to node2 of the 
> cluster:
>  * On node1 of the cluster, queue1 & queue2 now have 0 messages in it
>  * On node2 of the cluster, queue1 has 200 messages in it and queue2 has 2 
> messages in it (i.e. an additional message in each queue, even though the 
> consuming application is not publishing any messages).
>  * The consuming application connected to node2 of the cluster does not 
> consume any messages off either queue1 or queue2 from node2 (of the cluster).
> In artemis.log on node2 of the cluster, the following appears:
> {noformat}
> 2018-06-13 02:41:00,604 WARN  [org.apache.activemq.artemis.core.server] 
> AMQ222151: removing consumer which did not handle a message, 
> consumer=ServerConsumerImpl [id=1, filter=null, binding=LocalQueueBinding 
> [address=internal/queue.in/spatial-processing-service/440bfafe-76e5-4867-8b00-f1533d855549/0/update-terrain-request,
>  
> queue=QueueImpl[name=internal/queue.in/spatial-processing-service/440bfafe-76e5-4867-8b00-f1533d855549/0/update-terrain-request,
>  postOffice=PostOfficeImpl 
> [server=ActiveMQServerImpl::serverUUID=f80e9286-6e9f-11e8-bd64-0204cf8299ac], 
> temp=false]@50517445, filter=null, 
> name=internal/queue.in/spatial-processing-service/440bfafe-76e5-4867-8b00-f1533d855549/0/update-terrain-request,
>  
> clusterName=internal/queue.in/spatial-processing-service/440bfafe-76e5-4867-8b00-f1533d855549/0/update-terrain-requestf80e9286-6e9f-11e8-bd64-0204cf8299ac]],
>  
> message=Reference[117]:NON-RELIABLE:LargeServerMessage[messageID=117,durable=false,userID=null,priority=0,
>  timestamp=0,expiration=0, durable=false, 
> address=internal/queue.in/spatial-processing-service/440bfafe-76e5-4867-8b00-f1533d855549/0/update-terrain-request,
>  properties=TypedProperties[_AMQ_LARGE_SIZE=330649]]@2025498374: 
> java.lang.IllegalStateException: Can't deliver message 
> java.lang.NullPointerException
>         at 
> org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.sendMessage(AMQPSessionCallback.java:652)
>  [artemis-amqp-protocol-2.6.1.jar:]
>         at 
> org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.deliverStandardMessage(ServerConsumerImpl.java:1106)
>  [artemis-server-2.6.1.jar:2.6.1]
>         at 
> org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl.proceedDeliver(ServerConsumerImpl.java:464)
>  [artemis-server-2.6.1.jar:2.6.1]
>         at 
> org.apache.activemq.artemis.core.server.impl.QueueImpl.proceedDeliver(QueueImpl.java:2934)
>  [artemis-server-2.6.1.jar:2.6.1]
>         at 
> org.apache.activemq.artemis.core.server.impl.QueueImpl.deliver(QueueImpl.java:2402)
>  [artemis-server-2.6.1.jar:2.6.1]
>         at 
> org.apache.activemq.artemis.core.server.impl.QueueImpl.access$2000(QueueImpl.java:107)
>  [artemis-server-2.6.1.jar:2.6.1]
>         at 
> org.apache.activemq.artemis.core.server.impl.QueueImpl$DeliverRunner.run(QueueImpl.java:3207)
>  [artemis-server-2.6.1.jar:2.6.1]
>         at 
> org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42)
>  [artemis-commons-2.6.1.jar:2.6.1]
>         at 
> org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31)
>  [artemis-commons-2.6.1.jar:2.6.1]
>         at 
> org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:66)
>  [artemis-commons-2.6.1.jar:2.6.1]
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  [rt.jar:1.8.0_171]
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  [rt.jar:1.8.0_171]
>         at 
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
>  [artemis-commons-2.6.1.jar:2.6.1]
> Caused by: java.lang.NullPointerException
>         at 
> org.apache.activemq.artemis.core.message.impl.CoreMessage.internalWritableBuffer(CoreMessage.java:360)
>  [artemis-core-client-2.6.1.jar:2.6.1]
>         at 
> org.apache.activemq.artemis.core.message.impl.CoreMessage.getBodyBuffer(CoreMessage.java:353)
>  [artemis-core-client-2.6.1.jar:2.6.1]
>         at 
> org.apache.activemq.artemis.protocol.amqp.converter.CoreAmqpConverter.convertBody(CoreAmqpConverter.java:384)
>  [artemis-amqp-protocol-2.6.1.jar:]
>         at 
> org.apache.activemq.artemis.protocol.amqp.converter.CoreAmqpConverter.fromCore(CoreAmqpConverter.java:126)
>  [artemis-amqp-protocol-2.6.1.jar:]
>         at 
> org.apache.activemq.artemis.protocol.amqp.converter.CoreAmqpConverter.checkAMQP(CoreAmqpConverter.java:106)
>  [artemis-amqp-protocol-2.6.1.jar:]
>         at 
> org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext.deliverMessage(ProtonServerSenderContext.java:681)
>  [artemis-amqp-protocol-2.6.1.jar:]
>         at 
> org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.sendMessage(AMQPSessionCallback.java:643)
>  [artemis-amqp-protocol-2.6.1.jar:]
>         ... 12 more
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to