Ado.net OracleCommand не выдает исключение тайм-аута (выполнение хранимой процедуры)

Я выполняю хранимую процедуру ORACLE, используя System.OracleClient.OracleCommand и установить CommandTimeout = 5; (for example)

Но я хочу установить тайм-аут таким образом, чтобы, если выполнение объекта команды заняло более 5 минут, оно было прервано (получая исключение...OracleException), чтобы я мог показать сообщение об ошибке пользователю. Дайте мне знать, как это можно сделать. Это мой пример написанного кода.

    try
    {
        _dbConnectionString.Open();               
        var cmdOracle = new OracleCommand("hfghgh", _dbConnectionString)
        {
            CommandType = CommandType.StoredProcedure
        };
        OracleCommandBuilder.DeriveParameters(cmdOracle);               
        cmdOracle.Parameters["inputParam"].Value = 1;                
        tran =_dbConnectionString.BeginTransaction(IsolationLevel.ReadCommitted);
        cmdOracle.Transaction = tran;
        cmdOracle.CommandTimeout = 5;

        await cmdOracle.ExecuteNonQueryAsync();
        tran.Commit();
        return res = cmdOracle.Parameters["outputParam"].Value.ToString();
    }
    catch (OracleException ex)
    {
        dynamic exOra = ex;
        int errorNo = exOra.Number;
        if (errorNo == 01013)
        {
            throw new ResponseFailException(ex);
        }
        else
        {
            throw ex;
        }
    }

0 ответов

Другие вопросы по тегам