问题标签 [dead-letter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jms - How to go about messages in Dead Letter Queue
We are using WebLogic 10.3.6.0 and IBM MQ 7.5. Application design is to send messages to a dead letter queue (in WebLogic) on re-delivery. The re-delivery happens as the first delivery has failed due to some network issue or database data source failure.
My Client wants a way to browse the messages in the dead letter queue from the application GUI and pull them for processing when the network issue or data source issue has been resolved.
What is the best way to go about this?
I cam across QueueBrowser coupled with activemq or some other implementation. Is QueueBrowser possible with WebLogic? Please suggest on best ways to achieve this requirement. Kindly pardon if my question is too naive. I am only a PL/SQL programmer.
c# - 向死信添加异常详细信息
将代理服务总线(在 Azure 中)与具有多个订阅的主题一起使用时,某些订阅在处理消息时会引发异常。然后,这些消息将被放入该订阅的死信队列中。
我怎样才能看到问题是什么,以及为什么消息是死信?
我想我可以修改死信,但是用抛出的异常修改消息是常见的做法吗?如果是这样,这是如何使用BrokeredMessage
对象完成的?可以使用BrokeredMessage.Abandon(IDictionary[String, Object])放弃消息,但是使用它来记录异常是一种已知的做法还是有更好的方法?
deployment - 发送到正在部署的 Actor 的消息会发生什么?
我有一个很简单的问题,但是我在网上没有找到任何东西(可能我不知道如何搜索它)。
如果我部署了一个演员(actorSystem.actorOf ...)并立即向它发送一条消息,如果尚未部署该演员,那么消息将被排入“特殊”队列还是将消息发送到 DeadLetters ?
azure - Azure Web 作业,队列中可用的旧消息未触发服务总线触发器
我已经实现了 azure web 作业来使用来自 azure 服务总线的消息。服务总线触发器适用于到达服务总线的新消息,但它没有拾取在服务启动之前服务总线上已经可用的消息。是否有任何配置可以将现有消息发送到 Web 作业?
由于某种原因,一些消息被放弃了。重新处理这些消息的最佳方法是什么。
rabbitmq - Dealing with dead letters in RabbitMQ
TL;DR: I need to "replay" dead letter messages back into their original queues once I've fixed the consumer code that was originally causing the messages to be rejected.
I have configured the Dead Letter Exchange (DLX) for RabbitMQ and am successfully routing rejected messages to a dead letter queue. But now I want to look at the messages in the dead letter queue and try to decide what to do with each of them. Some (many?) of these messages should be replayed (requeued) to their original queues (available in the "x-death" headers) once the offending consumer code has been fixed. But how do I actually go about doing this? Should I write a one-off program that reads messages from the dead letter queue and allows me to specify a target queue to send them to? And what about searching the dead letter queue? What if I know that a message (let's say which is encoded in JSON) has a certain attribute that I want to search for and replay? For example, I fix a defect which I know will allow message with PacketId: 1234 to successfully process now. I could also write a one-off program for this I suppose.
I certainly can't be the first one to encounter these problems and I'm wondering if anyone else has already solved them. It seems like there should be some sort of Swiss Army Knife for this sort of thing. I did a pretty extensive search on Google and Stack Overflow but didn't really come up with much. The closest thing I could find were shovels but that doesn't really seem like the right tool for the job.
java - Akka-Java 在 ask-await 上抛出 DeadLetterException
我在这样的文件中有一个驱动程序/主类。(基本上我正在尝试混合 STORM 和 AKKA)。在 TenderEventSpout2 类中,我正在尝试向/从演员发送和接收消息。
我的演员是:
}
我可以向我的 EventSpoutActor 发送消息。但面临接收消息的问题。这是为什么??我在控制台中打印以下消息:
f# - 停止父演员时的 DeathWatchNotification
我有以下演员层次结构:
receiver
负责处理 HTTP 请求。当一个请求到来时,这个actor创建一个子actor coordinator
(实际上是一个动态的名字)。
在coordinator
完成它的工作后它执行Context.Stop(Self)
。这优雅地停止了所有孩子,但随后我在控制台中收到以下消息:
[INFO][23.05.2016 08:48:45][Thread 0013][akka://FSharpSystem/user/receiver/$b] 消息 DeathWatchNotification 从 akka://FSharpSystem/user/receiver/$b 到 akka:/ /FSharpSystem/user/receiver/$b 未交付。遇到 1 个死信。
[INFO][23.05.2016 08:48:45][Thread 0013][akka://FSharpSystem/user/receiver/$b] 消息 DeathWatchNotification 从 akka://FSharpSystem/user/receiver/$b 到 akka:/ /FSharpSystem/user/receiver/$b 未交付。遇到 2 个死信。
[INFO][23.05.2016 08:48:45][Thread 0013][akka://FSharpSystem/user/receiver/$b] 消息 DeathWatchNotification 从 akka://FSharpSystem/user/receiver/$b 到 akka:/ /FSharpSystem/user/receiver/$b 未交付。遇到 3 个死信。
看起来所有三个参与者都将 a 发送DeathWatchNotification
到coordinator
($b 是它的动态名称)。我没有订阅此通知,也不想在日志中看到它。如何禁用此行为(最好在 F# 中)?
PS 这是带有示例代码的要点。
f# - F#中如何订阅和查看死信
我尝试使用以下代码来查看/捕获死信,但它没有以应有的方式工作。我错过了什么。到底是什么?我的目的只是查看所有正在交付给死信演员的死信。
rabbitmq - 使用标头交换路由死信消息
我喜欢根据原始队列名称将我的死信消息路由到 dlx 队列中。我的设置:
死信消息长这样
我有以下绑定:
当我将死信消息传递到我的 header-dlx 交换器(一个简单的标头交换器)时,我希望该消息将被放入foo-dlx-queue
,但该消息会被放入两个绑定的 dlx 队列中。
知道我做错了什么吗?
java - 如何使用 MQ 类 (IBM) 在 Java 中将死信转换为 BytesMessage
我想从死信队列重新发送消息。为此,我需要将死信转换为 BytesMessage(有效负载可以是 ZIP 或字符串)。
到目前为止我尝试了什么:
通过 MQRFH2 类和 seek() 获取 RFH2:
通过 MQHeaderlist 获取 RFH2:
通过 MQRFH2 类获取 RFH2:
没有什么对我有用:我收到错误,比如这个:
有没有另一种方法可以将死信转换为 BytesMessage 而不将整个消息分成小部分并将它们重新组合在一起?这种方式在我看来不是很漂亮。它非常不稳定。
编辑: 我只能在 java 中使用 mq 库的 7.5.0.0 版本。