powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / асинхронная обработка
19 сообщений из 19, страница 1 из 1
асинхронная обработка
    #39509972
igor_ptoov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, уважаемые знатоки
Не бейте за ламерский вопрос, прошу у Вас консультации, как у опытных мира сего
В общем ситуация следующая:
в моей БД есть пакет, функции из которого периодически вызываются из Java приложения, причем некоторые из них отрабатывают на запись в БД.
Подскажите пожалуйста, может ли возникнуть такая ситуация, когда пользователь отправляет первый запрос на запись в БД, он ещё не выполнился, а пользователь отправляет второй запрос на осуществление той же записи в БД...?
Не возникнет ли коллизия в этом случае?
Прочитал перед этим про транзакции,и вроде как не должно, но потом прочитал про асинхронное выполнение, и получается что вроде как и может быть.
Поэтому прошу не ругать сильно, а пожалуйста помочь разобраться в понимании ситуации, при каких же все таки случаях может быть возможна данная ошибка?
Спасибо большое
...
Рейтинг: 0 / 0
асинхронная обработка
    #39509982
igor_ptoovНе возникнет ли коллизиячто это?
...
Рейтинг: 0 / 0
асинхронная обработка
    #39509986
igor_ptoov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ламерский вопрос,

Образно описал этим словом описанную мною ситуацию
...
Рейтинг: 0 / 0
асинхронная обработка
    #39509994
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
при каких же все таки случаях может быть возможна данная ошибка?

Как запрограммируете операции пользователя и ограничения в БД, так и будет.

Может быть две строки с ID=1 - будет.

Введено ограничение - не будет, один сеанс отвалится с ошибкой.
...
Рейтинг: 0 / 0
асинхронная обработка
    #39509997
igor_ptoov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmdmdm,

говоря об ограничении, вы имеете ввиду к примеру констрейны?
...
Рейтинг: 0 / 0
асинхронная обработка
    #39510004
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igor_ptoovПодскажите пожалуйста, может ли возникнуть такая ситуация, когда пользователь отправляет первый запрос на запись в БД, он ещё не выполнился, а пользователь отправляет второй запрос на осуществление той же записи в БД...?Я дотошный. Вопросы к выделенному красным:
1) В какой сессии? В другой? Почему не указываешь явно?
2) Запрос чего?
3) Есть ли уникальные индексы на таблице?

В принципе уже из этих вопросов можно выбрать правильное направление для поиска.
...
Рейтинг: 0 / 0
асинхронная обработка
    #39510005
igor_ptoov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AmKadigor_ptoovПодскажите пожалуйста, может ли возникнуть такая ситуация, когда пользователь отправляет первый запрос на запись в БД, он ещё не выполнился, а пользователь отправляет второй запрос на осуществление той же записи в БД...?Я дотошный. Вопросы к выделенному красным:
1) В какой сессии? В другой? Почему не указываешь явно?
2) Запрос чего?
3) Есть ли уникальные индексы на таблице?

В принципе уже из этих вопросов можно выбрать правильное направление для поиска.

Сессия та же
запрос на вставку строки в таблицу
уникальный индекс есть - в принципе он скорее всего и не даст осуществить задуманное
Спсибо большое, если я что-то недопонял, поправьте меня пожалуйста
...
Рейтинг: 0 / 0
асинхронная обработка
    #39510008
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igor_ptoovСессия та жеХа. Вот не зря же я дотошный. Когда спрашивал, был на 99.99% уверен, что сессия другая. А ты говоришь обратное. Хотя, с учетом того, что у тебя Java, я все равно не верю тебе на все 100.
...
Рейтинг: 0 / 0
асинхронная обработка
    #39510010
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я понимаю так:
Внес человек данные в форму
Нажал "добавить".
Клиент тупанул.
Человек нажал "добавить" второй раз.

Так?
...
Рейтинг: 0 / 0
асинхронная обработка
    #39510013
igor_ptoov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
982183Я понимаю так:
Внес человек данные в форму
Нажал "добавить".
Клиент тупанул.
Человек нажал "добавить" второй раз.

Так?

Да да, именно так
...
Рейтинг: 0 / 0
асинхронная обработка
    #39510024
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igor_ptoov,

У ВАс сайт или десктоп приложение..
Если десктоп то скорее всего не будет проблем ибо JDBC ждёт отклика от сервера.
И по идее главный поток должен замереть.
И вообще как бы после операции CRUD(create,update,delete) должно быть refresh...
Вы перечитываете базу.(и таким образом у Вас обратная связь ...пользователь видит добавленную(изменённую) запись(или что нет записи в соучае удаления))
А если web...то Request у вас синхронный или асинхронный.
Если синхронный смотрим раздел десктоп...
А вот если асинхронный...то от таких коллизий надо генереить(во всяком случае я так делаю mini guid)
И в субд он уникален. и таки образом повтор будет отвергнут.
...
Рейтинг: 0 / 0
асинхронная обработка
    #39510029
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igor_ptoovДа да, именно так

А ты проверь. Асинхронного режима не бывает. В той же сессии тебе не удастся выполнить
второй запрос пока не отработал первый.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
асинхронная обработка
    #39510048
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igor_ptoovговоря об ограничении, вы имеете ввиду к примеру констрейны?

Никто не мешает совмещать ограничения БД с ограничениями и проверками на стороне приложения.

Транзакцию (или процедуру создания некоего бизнес-объекта, если вы не уверены в непрерывности транзакции у web приложения) можно начинать с блокировки некоего уникального ID/имени, чтобы повторный запрос на такой же ID вызвал ошибку.
...
Рейтинг: 0 / 0
асинхронная обработка
    #39510075
Stark.....
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dmdmdm,

Я вас понял, проверки на сторон клиента гарантировано разработчиками клиента, но кто знает, вдруг что
А транзакции должна блокировать запись исходя из ее смысла
У нас web, сервер приложений на java
Вот думаю, если сессия отвалится, тогда клиент перезайдет, а процесс как-нибудь зависнет
Можно ли делать килл подобным процессам?
...
Рейтинг: 0 / 0
асинхронная обработка
    #39510083
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stark.....если сессия отвалитсято все незакоммиченные изменения отроллбэчатся.
...
Рейтинг: 0 / 0
асинхронная обработка
    #39510158
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
коллизий не будет, а вот чтобы не было дублей, надо при сохранении, например, клиента, чекать такой телефон/em@il
...
Рейтинг: 0 / 0
асинхронная обработка
    #39510292
igor_ptoov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tip78коллизий не будет, а вот чтобы не было дублей, надо при сохранении, например, клиента, чекать такой телефон/em@il

а зачем чекать телефон/em@il, если есть огграничение уникальности на ID ?
...
Рейтинг: 0 / 0
асинхронная обработка
    #39510452
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igor_ptoovtip78коллизий не будет, а вот чтобы не было дублей, надо при сохранении, например, клиента, чекать такой телефон/em@il

а зачем чекать телефон/em@il, если есть огграничение уникальности на ID ?
на новом юзере оно вам не поможет
дубль получит другой ID
...
Рейтинг: 0 / 0
асинхронная обработка
    #39510855
Bfink
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKadStark.....если сессия отвалитсято все незакоммиченные изменения отроллбэчатся.

все ли?
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / асинхронная обработка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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