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;
}
}