1

ほとんどの場合は機能しますが、エラー メッセージが表示されることがあります。

Oracle.ManagedDataAccess.Client.OracleException (0x80004005): ORA-03135: 接続が切断されました

... C:\xxx\Controllers\XController.cs:108 行目

108行目はreturn StatusCode(HttpStatusCode.ExpectationFailed);奇妙です....


class MyDbConfiguration : DbConfiguration
{
    public MyDbConfiguration()
    {
        SetExecutionStrategy("Oracle.ManagedDataAccess.Client", () => new MyDbExecutionStrategy(3, TimeSpan.FromSeconds(0)));
    }
}

public class MyDbExecutionStrategy : DbExecutionStrategy
{
    public MyDbExecutionStrategy(int maxRetryCount, TimeSpan maxDelay)
        : base(maxRetryCount, maxDelay)        {        }

    protected override bool ShouldRetryOn(Exception ex)
    {
        return true; // for simplicity
    }
}

これを克服するには、別のラッパーを実行し、Oracle エラーを手動でキャッチする必要がありました。DBエラーをデバッグしてシミュレートすると、実行は一貫してShouldRetryOnメソッドに入ります。

4

0 に答える 0