Я пытаюсь уничтожить запрос, вызванный командой ADO.NET в базе данных postgresql, после тайм-аута команды:
using (var command = new PgSqlCommand("public.timeout_test", connection))
{
command.CommandTimeout = 10;
command.CommandType = CommandType.StoredProcedure;
connection.Open();
command.ExecuteNonQuery();
}
В дотнет-коде исключение тайм-аута генерируется правильно, но мне интересно, почему запрос, запускаемый функцией timout_test, все еще находится в активном состоянии. Если я выполню запрос ниже, то запрос, выполненный timeout_tets, будет указан как активный:
SELECT * FROM pg_stat_activity where state = 'active';
Пытался протестировать его с помощью разъемов devart и npgsql, но оба они ведут себя одинаково, поэтому я предполагаю, что он предназначен для поведения, но не понимаю причину. Также хотел спросить, есть ли способ убить запрос после тайм-аута команды.