Я работаю в системе, в которой имеется огромное (2000-5000 записей в минуту) количество входящих событий, которые должны быть записаны в базе данных (SQL Server 2000).Мы используем соединение ODBC для соединения с базой данных.
В настоящее время мы открываем одно соединение во время запуска приложения и передаем данные, используя соединение, так как мы не сможем получить новое соединение при каждом добавлении записи.из-за огромного количества загружаемых данных. Проблема, с которой мы сталкиваемся, заключается в следующем: когда происходит сбой сети или соединение прерывисто, данные не помещаются в базу данных (конечно, мы получаем CDBException
если есть проблема с сетью).Но будет слишком поздно для восстановления соединения, потому что продолжает поступать больше событий. Также невозможно проверять правильность соединения каждый раз, когда мы вставляем запись, потому что это трудоемкое задание.
Я подумал о способе преодоления этой проблемы.
Используйте кэш / буфер для хранения входящих сигналов тревоги / событий и помещайте их в базу данных один раз в 'n' секунд и / или когда буфер достигаетопределенного размера.
Поможет ли это решение?Есть ли альтернативный подход к решению проблемы?
Спасибо.