Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Синхронизация записи в БД / 12 сообщений из 12, страница 1 из 1
15.04.2015, 15:08
    #38937262
denis111111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация записи в БД
Добрый день
Хочу спросить совета.
Нужно синхронизировать запись в БД.
В то время пока я роботаю с изменяемыми таблицами, то никакой другой поток не должен их тоже изменять.

Я вижу такие варианты
1)Singleton клас. И метод который пишет в БД сделать synchronized
2) Зделать через java.util.concurrent.Executors
3) Синхронизировать на уровне БД (sql isolation level) (не знаю можно ли поставить синхронизацию на несколько SQL запросов к разным таблицам)
...
Рейтинг: 0 / 0
15.04.2015, 15:19
    #38937282
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация записи в БД
denis111111,
транзакции знаешь для чего служат?
...
Рейтинг: 0 / 0
15.04.2015, 15:26
    #38937295
denis111111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация записи в БД
вадя,

Тоб-то можно поставить уровень изоляции транзакции SERIALIZABLE, начать делать SQL запросы и все?
...
Рейтинг: 0 / 0
15.04.2015, 15:30
    #38937301
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация записи в БД
denis111111вадя,

Тоб-то можно поставить уровень изоляции транзакции SERIALIZABLE, начать делать SQL запросы и все?
Для начала нужно иметь понимание что менее строгие уровни изоляции вам почему-то не подходят.

Есть куча разных способов решить проблему. Но с начала нужно определится с тем действительно ли есть смысл синхронизировать доступ на уровне БД, а не на уровне Java.

Постановка проблемы у вас слишком размытая, поэтому не понятно нужна ли тут пессимистичная блокировка SELECT FOR UPDATE или достаточно обычной транзакционности.
...
Рейтинг: 0 / 0
15.04.2015, 15:37
    #38937317
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация записи в БД
denis111111В то время пока я роботаю с изменяемыми таблицами, то никакой другой поток не должен их тоже изменять.
ты же не один.
Это идёт вразрез с назначением БД как Многопользовательской.
И веб тоже т.к. блокировки.
...
Рейтинг: 0 / 0
15.04.2015, 15:52
    #38937346
denis111111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация записи в БД
Blazkowicz,

Ну вот например есть таблица где записи не должны дублироватся ( есть уникальной ключ для каждой записи)
Приходит партия записей для импорта в БД.
Я создаю временную таблицу.
Пишу новие записи в нее.
Через join узнаю каких запсисей нет в системе и пишу их БД.
Также мне нужен список дублей что потом отфильтровать остальние сущности для записи в БД
Мне кажется тут и нужна синхронизация

Можно поставить на ключевое поле что оно уникальное, но тогда если записи будут дублироватся запрос просто не исполнится...
...
Рейтинг: 0 / 0
15.04.2015, 15:54
    #38937351
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация записи в БД
denis111111Можно поставить на ключевое поле что оно уникальное, но тогда если записи будут дублироватся запрос просто не исполнится...
В зависимости от базы данных можно использовать запросы которые
1) Будут игнорировать ошибку уникального констрейнта и просто пропускать запросы приводящие к ошибке
2) Проверять наличие ключа в таблице перед вставкой записи
...
Рейтинг: 0 / 0
15.04.2015, 15:57
    #38937358
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация записи в БД
и для начала надо указать базу, чтоб ответы были более полными
...
Рейтинг: 0 / 0
15.04.2015, 16:06
    #38937377
denis111111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация записи в БД
вадяи для начала надо указать базу, чтоб ответы были более полными
MySQL 5.6
...
Рейтинг: 0 / 0
15.04.2015, 16:07
    #38937378
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация записи в БД
...
Рейтинг: 0 / 0
15.04.2015, 16:09
    #38937385
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация записи в БД
для "большей защищённости" от "параллельных обращени" можно испльзовать транзакции в хранимых процедурах
...
Рейтинг: 0 / 0
15.04.2015, 16:16
    #38937403
denis111111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация записи в БД
Хорошо, спасибо всем за ответы! Буду обдумывать все это...
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Синхронизация записи в БД / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]