【问题标题】:ServicePulse showing zero errors but yet there are errorsServicePulse 显示零错误但仍有错误
【发布时间】:2015-02-04 05:03:55
【问题描述】:

请参考我附上的截图。

我有一个“短信”队列,其中包含从使用 NServiceBus 的 Web 客户端发布的消息。不断刷新 MSMQ 管理器,我看到消息出现在 sms 队列中。 NServiceBus 处理它们并引发异常(我不关心异常 - 我知道如何解决它们)并且 NServiceBus 经历其第一级和第二级重试。最终,消息如预期的那样最终进入“错误”队列。但是,我担心的是,ServicePulse 视图中没有显示任何这些失败的消息。 这是我的端点配置的摘录:

<AuditConfig QueueName="audit" />
<MessageForwardingInCaseOfFaultConfig ErrorQueue="error" />

ServiceControl dll 已就位,并且端点在 ServicePulse 仪表板中显示心跳。

另外值得关注的是审核队列中没有任何消息显示。

我错过了什么?

【问题讨论】:

  • 有趣的是,我今天面临完全相同的问题。如果我在你之前找到答案,我会回答你的问题。 :) 顺便提一句。审核队列应该只接收成功的消息,所以如果你只有失败的消息,那就是预期的。

标签: nservicebus


【解决方案1】:

我在这里找到了适合我的答案:http://docs.particular.net/servicecontrol/creating-config-file

显然,ServicePulse 强制您对所有端点使用集中式错误队列。我以为它会使用端点配置中定义的错误队列,但没有这样的运气。

队列的默认名称是“error”。这意味着您有 2 个选择

  1. 将所有端点错误队列重命名为“error”
  2. 在此处创建一个配置文件:C:\Program Files (x86)\Particular Software\ServiceControl\ServiceControl.exe.config,其中包含:

希望对你也有帮助。

【讨论】:

  • 我提供的配置文件从答案中消失了......这里是:
  • 正确。其背后的架构理念是为整个系统提供一个集中的错误和审计点。 ServiceControl 从这些队列中获取信息,并向 ServicePulse 提供必要的信息。这也是审计和错误队列为空的原因。如果您仍想保留消息的副本,请确保您还配置了 AuditLogQueue 和 ErrorLogQueue(ServiceBus/ErrorLogQueue 和 ServiceBus/AuditLogQueue)。
  • 等等,我没关注。如果我有一个名为“error”的队列,并且 ServiceControl 的默认错误队列是“error”,那么我究竟会在 ServiceControl.exe.config 中放入什么?
  • 如果调用错误的队列是您从服务登录的队列,那么您的问题可能与我的不同。但请注意,servicecontrol 会清空错误队列,这就是您可以使用 error.log 队列来保留原始项目的原因。
  • @ShawndeWet 一切都在同一台机器上运行吗?在多机环境中拥有一个集中的错误队列意味着在 MSMQ 的情况下定义错误队列,如下面的 error@machinename。所以ServiceControl需要消费这个错误队列,并且可以将处理后的消息转发到日志队列i.ex。 error.log@machinename。这说明清楚了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-06
  • 2019-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多