Пакетное задание загрузки базы данных Java - PullRequest
1 голос
/ 17 июля 2011

Создайте пакетное задание на Java, которое усекает, а затем загружает определенную таблицу в базу данных Oracle каждые несколько минут.На веб-страницах создаются отчеты, основанные на данных таблицы.Мне интересно, как можно не повлиять на часть запроса отчета, когда процесс загрузки данных проходит успешно, так что пользователи не получат некоторые данные и / или не получат их.

Ответы [ 3 ]

3 голосов
/ 17 июля 2011

Если вы обрабатываете все ваши операторы SQL внутри одной транзакции, всегда будет допустимое состояние, видимое извне. Помните, что TRUNCATE не работает в транзакциях, поэтому вы должны использовать DELETE . Хотя это гарантирует постоянное наличие в таблице разумных данных, для этого требуется больший сегмент отката, и он будет значительно медленнее.

2 голосов
/ 17 июля 2011

вы можете иметь 2 таблицы и мета-таблицу, которая отслеживает, какая таблица является основной таблицей, используемой для запросов. Ваше пакетное задание будет урезать и загружать одну из таблиц, и вы можете переключать основные таблицы после завершения загрузки. так что приложение запроса теперь получит последние данные, и теперь вы можете загрузить их в другую таблицу

1 голос
/ 17 июля 2011

Что я хотел бы сделать, это установить флаг в таблице БД, чтобы указать, что обновление выполняется, и в отчетах искать этот флаг и отображать соответствующее сообщение и ждать завершения обновления.После завершения обновления снимите флажок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...