我有JPA 2.1 spec例外,我无法重现它。根据文档,它用于 SqlAzureExecutionStrategy 失败,因此复制它可能很困难。
我已经在Azure中破坏了这个过程,所以我希望有一些日志可以告诉我更多细节。我在门户网站上找不到类似的东西。这些信息在哪里?
答案 0 :(得分:0)
我自己没试过(所以我在这里可能完全错了 - 如果我,请告诉我:))。
此外,我的理解是,您要测试的是您已定义的执行策略是否正常,重试次数和重试之间的延迟。
你的观察是正确的,因为事情不在你的掌控之中,很难模拟瞬态错误。但是,查看文档和一些示例,您可以执行的操作是覆盖SqlAzureExecutionStrategy.ShouldRetryOn
并插入自定义逻辑以进行失败。因此,您可以将Failed Login
尝试作为暂时性错误添加,然后查看此事是否适合您(就重试和重试延迟而言)。
请考虑此示例(source
),其中作者将SqlError with Number == -2
视为暂时性错误。
protected override bool ShouldRetryOn(Exception exception)
{
bool shouldRetry = false;
SqlException sqlException = exception as SqlException;
if (sqlException != null)
{
foreach (SqlError error in sqlException.Errors)
{
if (error.Number == -2)
shouldRetry = true;
}
}
shouldRetry = shouldRetry || base.ShouldRetryOn(exception);
Logger.WriteLog("ShouldRetryOn: " + shouldRetry);
return shouldRetry;
}