在尝试发送 Solace 消息时,我正在尝试处理某些 SessionEventArgs 中的 QueueNotFound 错误。
以下是调试时 SessionEventArgs 的外观: SessionEventArgs info
响应代码返回为 400,但我担心该代码用于 QueueNotFound 以外的错误。
除了检查“未找到队列”的信息字符串之外,还有其他方法可以断言该错误确实与不存在的 Solace 队列有关吗?
在尝试发送 Solace 消息时,我正在尝试处理某些 SessionEventArgs 中的 QueueNotFound 错误。
以下是调试时 SessionEventArgs 的外观: SessionEventArgs info
响应代码返回为 400,但我担心该代码用于 QueueNotFound 以外的错误。
除了检查“未找到队列”的信息字符串之外,还有其他方法可以断言该错误确实与不存在的 Solace 队列有关吗?
您可以从会话事件委托中调用 ContextFactory.Instance.GetLastSDKErrorInfo() 方法。这将返回一个 SDKErrorInfo 实例,其中包含有关报告的会话事件的更多信息。
SDKErrorInfo 实例有一个 SubCode 字段,它将指示错误的确切类型。如果错误为 Queue Not Found,则子代码枚举将为 SDKErrorSubcode.QueueNotFound。您可以在 Solclient.chm 帮助文档中查看所有 SDKErrorSubcode 枚举及其相关响应代码的列表。
在与 Solace .NET API 一起打包的 Replication.cs 示例中,有一个关于如何使用 ContextFactory.Instance.GetLastSDKErrorInfo() 方法的清晰示例。