Tim, thank you for your investigation (looks like our client is buggy,
we'll look at it).
besides that, doesn't it look strange, accept message and drop it right
away ? is there a possibility to reject such messages ?
it will inform client in a better way

2018-04-04 9:12 GMT+05:00 Tim Bain <tb...@alumni.duke.edu>:

> Ilya,
>
> The output you're seeing is from the message as it's being put onto the
> DLQ. (destination=queue://DLQ.EdiInbound") This means that it has already
> passed through the set of transformations that occur in
> orc.apache.activemq.broker.region.RegionBroker.sendToDeadLetterQueue() and
> RegionBroker.stampAsExpired(), which set the originalExpiration property to
> the value of expiration on the original message and then set expiration to
> the DLQ's expiration value (i.e. 0).
>
> What that means is that although you think you've set expiration to 0, you
> haven't successfully done that; you can see from both the
> originalExpiration property and the message of the Throwable in the
> dlqDeliveryFailureCause that the message's expiration value was
> 1522739054119,
> which is why this message got expired to the DLQ.
>
> So if you're attempting to disable message expiration for this message, you
> need to look at how you're doing that to figure out what you're doing
> that's not properly configured.
> http://activemq.apache.org/how-do-i-set-the-message-expiration.html might
> be relevant, if you haven't already seen it.
>
> Tim
>
> On Tue, Apr 3, 2018 at 7:22 AM, Илья Шипицин <chipits...@gmail.com> wrote:
>
> > hello,
> >
> > activemq.log:2018-04-03 10:42:57,961 | INFO  | preProcessDispatch:
> > MessageDispatch {commandId = 0, responseRequired = false, consumerId =
> > ID:dd-amq-app01.
> > sd.kontur.ru-32887-1522738593874-4:1:1:1, destination =
> > queue://DLQ.EdiInbound, message = ActiveMQTextMessage {commandId = 5,
> > responseRequired = true, mes
> > sageId = ID:vm-dc-test8-50009-636572273611169908-4:1826:1:1:1,
> > originalDestination = queue://EdiInbound, originalTransactionId = null,
> > producerId = ID:vm-
> > dc-test8-50009-636572273611169908-4:1826:1:1, destination =
> > queue://DLQ.EdiInbound, transactionId = null, expiration = 0, timestamp =
> > 1522739053119, arriv
> > al = 0, brokerInTime = 1522739055628, brokerOutTime = 1522739053126,
> > correlationId = null, replyTo = null, persistent = true, type = null,
> > priority = 4, g
> > roupID = null, groupSequence = 0, targetConsumerId = null, compressed =
> > false, userID = null, content =
> > org.apache.activemq.util.ByteSequence@552349c1, ma
> > rshalledProperties = null, dataStructure = null, redeliveryCounter = 0,
> > size = 1263, properties = {originalExpiration=1522739054119,
> > EDI_CORRELATION_ID=21
> > 008, EDI_FILE_NAME=15.xml, EDI_DOC_TYPE=EDI_DOC_TYPE,
> > BrokerPath=localhost,localhost,
> > dlqDeliveryFailureCause=java.lang.Throwable: Message Expired. Expira
> > tion:1522739054119}, readOnlyProperties = false, readOnlyBody = false,
> > droppable = false, jmsXGroupFirstForConsumer = false, text = <?xml
> > version="1.0" en
> > coding="UTF-8"?>
> >
> >
> > as I can see, "originalDestination = queue://EdiInbound" - so, we tried
> to
> > deliver to EdiInbound
> > expiration is 0 (we did not set it, it's default): expiration = 0
> >
> > as we can see, message was expired and delivered to DLQ. it was not
> > intended behaviour.
> > also, documentation states that expiration = 0 means "no expiration"
> >
> >
> > please, explain me. I do not understand how expiration=0 lead to DLQ
> > actually.
> >
> > configuration is pretty generic, nothing special. I'll provide
> > configuration if needed (also, from documentation I read that
> expiration=0
> > is not configuration dependent)
> >
> > we run 5.15.3
> >
> > cheers,
> > Ilya Shipitsin
> >
>

Reply via email to