У меня есть функция, которую я использую для отправки запросов на запись в DB2 через ODBC, и время от времени она зависает в этой функции, если я теряю соединение с DB2. Я отправляю 60 как мой тайм-аут к функции, но это никогда не истекает. Он просто вешает мою нить бесконечно, и я не уверен в хорошем способе заставить эту функцию отказаться.ODBC-соединение с DB2 Hangs
public int WriteQuery(string query, string dbConnStr, int timeout)
{
int rowsAffected = -1;
OdbcConnection conn = new OdbcConnection(dbConnStr);
try
{
conn.Open();
OdbcCommand command = new OdbcCommand(query, conn);
command.CommandTimeout = timeout;
OdbcTransaction trans = conn.BeginTransaction();
command.Transaction = trans;
OdbcDataAdapter adapter = new OdbcDataAdapter(command);
adapter.UpdateCommand = command;
rowsAffected = command.ExecuteNonQuery();
trans.Commit();
}
catch(Exception)
{
throw;
}
finally
{
conn.Close();
conn.Dispose();
}
return rowsAffected;
}
}
Есть ли у вас какие-либо идеи, какое заявление является причиной того, что вы повесили трубку? Я не вижу каких-либо операторов журналов, поэтому я предполагаю, что вы не уверены, если вы не заметили, что это произошло во время прохождения кода в отладчике. –