У меня есть приложение C #, которое вызывает хранимую процедуру Oracle. Обычное время выполнения хранимой процедуры составляет 2 минуты (оценка). Теперь, если выполнение хранимой процедуры превышает время ожидания команды (которое я установил на 60 секунд = 1 мин), то оно должно завершиться сбоем, но оно не падает на него.
Когда я запускаю приведенный ниже код без установки commandtimeout
, заканчивается без проблем. Но когда я устанавливаю значение commandtimeout
, выполнение хранимой процедуры Oracle не прекращается.
Пожалуйста, не могли бы вы мне помочь или предложить в этом вопросе?
Спасибо за вашу помощь вadvance.
Я искал в Интернете и обнаружил, что мне нужно включить приведенный ниже конфиг в мою app.config
для библиотеки доступа к управляемым данным Oracle. Но все равно это не помогло.
<oracle.manageddataaccess.client>
<version number="*">
<settings>
<setting name="Disable_Oob" value="on" />
</settings>
</version>
</oracle.manageddataaccess.client>
Ниже приведен код на C #, который я пытаюсь проверить на ORACLE TIMEOUT
public void OracleConnTimeoutTest()
{
string oralceConnStr = ConfigurationManager.ConnectionStrings["<CONNECTION STRING>"].ConnectionString;
OracleConnection oraConnection = new OracleConnection(oralceConnStr);
OracleCommand oraCmd = new OracleCommand();
oraCmd.Connection = oraConnection;
// Stored procedure execution
oraCmd.CommandText = "TESTDBCONNSQL";
oraCmd.CommandType = CommandType.StoredProcedure;
try
{
oraConnection.Open();
// WHEN I SET THE COMMANDTIMEOUT = 60 sec
// oraCmd.CommandTimeout = 60;
int result = oraCmd.ExecuteNonQuery();
// Stored procedure return success or failure
var spResult = oraCmd.Parameters["Output_Value"].Value;
}
catch (Exception ex)
{
System.Console.WriteLine("Exception: {0}", ex.ToString());
}
}