问题标签 [transient-failure]

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.

0 投票
1 回答
11290 浏览

c# - Polly 超时政策说明

我正在尝试使超时策略正常工作。我在集成 api 时有以下要求。

  1. 创建一个 http 请求来调用 endpoint1 并传递 transactionID 并捕获结果
  2. 如果 http 请求在 20 秒内没有响应,则发送具有相同 transactionID 的取消请求并捕获结果

对于这个任务,我想使用 Polly,它在我看来是一个很棒的组件,可以帮助处理瞬态故障。但是,由于我对这项技术非常陌生,我只想确定我是否正确实施。

首先,我已经像这样用 Polly 创建了一个超时策略

然后之后我准备执行该政策

我从文档中得到的是,如果timeoutPolicy.ExecuteAndCaptureAsync委托内部发生超时,Polly 会自动调用onTimeout委托。正确的?

但是我的问题是:

  • 如果在执行委托内部发生异常会发生什么?我应该将那个 polly 结构包装在 try catch 中吗?
  • 当我分析策略结果时,我如何了解是否发生超时?
0 投票
0 回答
39 浏览

hibernate - 类之间的不正确映射

我有以下课程:

[用户]

[机器人]

[用户.hbm.xml]

[机器人.hbm.xml]

我正在做的应用程序至少需要一个用户才能添加机器人,所以当我尝试添加机器人时,我得到了这个:

有没有人有线索?因为我一直在寻找但我无法理解......我被炸了......

0 投票
0 回答
188 浏览

azure - Azure 服务总线:瞬态故障处理

我有一个队列接收器,它从队列中读取消息并处理消息(进行一些处理并将一些数据插入到 azure 表或检索数据)。

我观察到的是,我的处理方法 ( SendResponseAsync()) 抛出的任何异常都会导致重试,即将消息重新传递到默认值 10 次。

是否可以自定义此行为,即我只重试某些异常而忽略其他异常。就像如果有一些网络问题,那么重试是有意义的,但如果是BadArgumentException(poisson message),那么我可能不想重试。

由于ServiceBus客户端库负责重试,我们可以自定义此行为吗?

这是接收端的代码

0 投票
0 回答
828 浏览

sql-server - Azure SQL:提供程序:TCP 提供程序,错误:0 - 信号量超时期限已过期

它类似于这个问题,但它没有修复:TCP Provider: The semaphore timeout period has expired

我正在使用带有重试策略的企业库瞬态故障处理(v 6.x)。我已经使用了多年,这个错误是一个新错误。可能是由于我们的网络服务器上的 Windows 更新(win 2012r2)

因此,由于没有更改 C# 代码,而且我使用企业库已经很长时间了……它必须与 Windows/硬件相关吗?

我发现了这个,说它与winsock相关,还有一些关于usb驱动程序的来源?

vip swaps存在一个已知问题,但是我们在 prem 2012r2 上运行我们自己的 webapps(webforms 和 mvc 应用程序都有这个问题)

这是堆栈跟踪之一:

0 投票
1 回答
90 浏览

elasticsearch - 弹性搜索如何带回一个已关闭的节点

我正在经历弹性搜索,并希望从 ES 集群中获得一致的响应。

我读过Elasticsearch 读写一致性

https://www.elastic.co/guide/en/elasticsearch/reference/2.4/docs-index_.html

和其他一些帖子,可以得出结论,ES 在完成对所有分片(主 + 副本)的写入后返回写入操作成功,而与一致性参数无关。

让我知道我的理解是否错误。

我想知道是否有人知道,弹性搜索如何将节点/分片添加回暂时关闭的集群中。它会在可用后立即开始提供读取请求,还是在提供读取请求之前确保其拥有最新数据?

我寻找上述问题的答案,但找不到任何答案。

谢谢戈帕尔

0 投票
1 回答
3261 浏览

c# - 对数据库连接失败实施连接重试策略

我有我的云数据库,即 Azure,所以有时我会收到这样的网络相关错误:

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)

我决定在一段时间后使用Polly重试连接尝试,但我不确定我是否以正确的方式使用它:

据我了解,Polly 的工作方式如下:

第一次尝试:等待 3 秒然后ConnectionManager.OpenConnection(cn)再次调用

第二次尝试:等待 6 秒,然后ConnectionManager.OpenConnection(cn)再次调用DbException

第三次尝试:等待 9 秒,然后ConnectionManager.OpenConnection(cn)再次调用DbException

但如果DbException再次发生怎么办?它会处理还是发送到我的 catch 子句包装 Process 方法?

我不确定我是否正确理解并正确实施。

我将不胜感激任何帮助:)

0 投票
1 回答
609 浏览

c# - 瞬态故障重试逻辑最佳实践

朋友们,我有一个关于围绕 SQL 命令执行实现简单重试策略的问题。

我的问题是:重试循环应该封装连接和事务的构造,还是应该存在于连接内部。

例如:

我在这里所做的是否合适且可以接受,或者重试逻辑是否应该存在于 SqlConnection 构造之外?

0 投票
1 回答
1386 浏览

c# - 如何使用 Polly 对任意“失败”条件进行重试和瞬态故障处理

我想使用Polly不是检查明显的“失败”,而是检查其他情况。具体来说,我想进行一次(异步)调用,例如httpClient.GetAsync(...),出于这个问题的目的,我知道它会成功 - 也就是说,在执行以下操作之后:

response.IsSuccessStatusCodetrue

让我们假设然后我做标准:

var content = await response.Content.ReadAsStringAsync();

content == { "Name":"Tom", "Age", 30", "ErrorCode":"12345" }

ErrorCode我希望我的策略逻辑根据响应部分的内容(或不存在或存在)来执行。所以这只是我打的一个电话。

我怎样才能用波莉做到这一点?

0 投票
1 回答
2250 浏览

microsoft-teams - 无法始终加入 Microsoft 团队中的会议“哦,天哪!您的电话已挂断。”

我花了数周时间研究我可以打开团队但我无法加入会议的问题。我可以与其他团队成员进行临时通话,但会议将在 5-10 秒内中断,并显示错误消息“天哪!您的通话已中断。请重试。”

0 投票
1 回答
338 浏览

azure - Azure MSI 身份验证的瞬态错误处理

托管服务身份 (MSI) 身份验证是否存在暂时且值得重试的错误?

通读实现,我可以看到 HttpRequestException 和 Exception 被框架吸收并被重新抛出为 AzureServiceTokenProviderException 而没有内部异常。

https://github.com/Azure/azure-sdk-for-net/blob/25adfede2b99391c29b5913fc289ff9511c9b26d/src/SdkCommon/AppAuthentication/Azure.Services.AppAuthentication/TokenProviders/MsiAccessTokenProvider.cs

我想知道(如果可能出现任何暂时性错误),我是否需要检查异常消息以提取消息中的嵌入式 http 状态代码并重新抛出例如我自己的 AzureServiceTokenProvider瞬态异常,在我的重试逻辑中捕获它。

我最初的问题是 MSI 身份验证是否存在任何已知的瞬时异常,其次是否有任何内置的重试逻辑或推荐做法?