Прикладной код не закрывает соединение с базой
«Соединение, полученное через SQL.CreateConnection(), необходимо освободить с помощью оператора using» при сборке решения Directum RX: прикладной код открывает соединение с базой и не гарантирует его закрытие. Как переписать.
Что это значит
В прикладной разработке RX прямое соединение с базой создаётся методом SQL.CreateConnection(). Если оно не закрывается, соединения копятся и могут исчерпать лимит базы (too many clients). Поэтому начиная с версий 4.9 и выше сборка требует, чтобы соединение создавалось внутри оператора using, который гарантирует закрытие.
Что сделать
Переписать код так, чтобы и соединение, и команда освобождались автоматически:
using (var connection = SQL.CreateConnection())
using (var command = connection.CreateCommand())
{
command.CommandText = "...";
command.ExecuteNonQuery();
}
Ошибка повторяется?
Запустите Диагностика: за полминуты он покажет состояние базы, брокера, поиска и сервера. С отчётом разберём причину за 30 минут бесплатного созвона.
Написать