ServicePulse showing zero errors but yet there are errors
请参考我附上的截图。
我有一个"sms" 队列,其中包含从使用 NServiceBus 的 Web 客户端发布的消息。不断刷新 MSMQ 管理器,我看到消息出现在 sms 队列中。 NServiceBus 处理它们并引发异常(我不关心异常 - 我知道如何解决它们)并且 NServiceBus 经历其第一级和第二级重试。最终,消息如预期的那样最终进入"错误"队列。但是,我担心的是,ServicePulse 视图中没有显示任何这些失败的消息。
这是我的端点配置的摘录:
1 2
| <AuditConfig QueueName="audit" />
<MessageForwardingInCaseOfFaultConfig ErrorQueue="error" /> |
ServiceControl dll 已就位,并且端点在 ServicePulse 仪表板中显示心跳。
另外值得关注的是审计队列中没有任何消息显示。
我错过了什么?
- 有趣的是,我今天面临着完全相同的问题。如果我在你之前找到答案,我会回答你的问题。 :) 顺便提一句。审核队列应该只接收成功的消息,所以如果你只有失败的消息,那就是预期的。
我在这里找到了对我有用的答案:http://docs.particular.net/servicecontrol/creating-config-file
显然,ServicePulse 强制您对所有端点使用集中式错误队列。我以为它会使用端点配置中定义的错误队列,但没有这样的运气。
队列的默认名称是"error"。这意味着您有 2 个选择
将所有端点错误队列重命名为"错误"
在此处创建一个配置文件:C:\\\\Program Files (x86)\\\\Particular Software\\\\ServiceControl\\\\ServiceControl.exe.config 包含以下内容:
希望对你也有帮助。
- 我提供的配置文件从答案中消失了......这里是: <?xml version="1.0" encoding="utf-8"standalone="yes"?> <configuration> </应用设置> </配置>
-
正确的。其背后的架构理念是为整个系统提供一个集中的错误和审计点。 ServiceControl 从这些队列中获取信息,并向 ServicePulse 提供必要的信息。这也是审计和错误队列为空的原因。如果您仍想保留消息的副本,请确保您还配置了 AuditLogQueue 和 ErrorLogQueue(ServiceBus/ErrorLogQueue 和 ServiceBus/AuditLogQueue)。
-
等等,我不关注了。如果我有一个名为 "error" 的队列,并且 ServiceControl\\ 的默认错误队列是 "error",那么我究竟会在 ServiceControl.exe.config 中放入什么?
-
如果名为 error 的队列是您从服务登录的队列,那么您的问题可能与我的不同。但请注意,servicecontrol 会清空错误队列,这就是为什么您可以使用 error.log 队列来保留原始项目的原因。
-
@ShawndeWet 一切都在同一台机器上运行吗?在多机环境中拥有一个集中的错误队列意味着在 MSMQ 的情况下定义错误队列,如下面的 error@machinename。所以ServiceControl需要消费这个错误队列,并且可以将处理后的消息转发到日志队列i.ex。 error.log@machinename。这说明清楚了吗?