
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
05.12.2017, 12:42:48
|
|||
|---|---|---|---|
|
|||
Не позволить запустить процедуру дважды в один момент времени. Как? |
|||
|
#18+
Доброго дня! Есть процедура, которая выполняется часто. То что она делает подразумевает, что она в один момент времени должен работать только один ее экземпляр. Представим, что на уровне ее "запускалки" нет возможности ограничить количество стартов. Есть идея добавить в ее код dbms_application_info.set_client_info с передачей уникального текста. При старте процедуры мониторить сессии на наличие сессии с переданным client_info - если есть, то ждать, если нет, то работать. Если считать, что никакой плохой человек не сделает процедуру, которая будет передавать то же значение в client_info, можно ли считать такой вариант рабочим, либо все-равно рано или поздно возникнет ситуация, что процедура в один момент времени запустится дважды? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.12.2017, 12:45:19
|
|||
|---|---|---|---|
Не позволить запустить процедуру дважды в один момент времени. Как? |
|||
|
#18+
RTFM/STFF dbms_lock ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.12.2017, 12:48:51
|
|||
|---|---|---|---|
|
|||
Не позволить запустить процедуру дважды в один момент времени. Как? |
|||
|
#18+
ElicRTFM/STFF dbms_lock Использовал только sleep с него. Спасибо, гляну ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.12.2017, 13:06:19
|
|||
|---|---|---|---|
Не позволить запустить процедуру дважды в один момент времени. Как? |
|||
|
#18+
Уникальный сессияможно ли считать такой вариант рабочим Задачка: блокировка одновременного запуска PL/SQL программ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.12.2017, 00:34:32
|
|||
|---|---|---|---|
Не позволить запустить процедуру дважды в один момент времени. Как? |
|||
|
#18+
А можно проще. Делай вставку в таблицу какого-либо значения с уникальным индексом. например, запись с именем процедуры. словишь 00001 и профит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.12.2017, 07:54:09
|
|||
|---|---|---|---|
|
|||
Не позволить запустить процедуру дважды в один момент времени. Как? |
|||
|
#18+
ShtockпрощеСоздать таблицу, вставить запись, удалить запись, если требуется продолжение транзакции без коммита, оборачиваем в автономку. Боремся с последствиями залипания записи при прерывании процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.12.2017, 11:04:58
|
|||
|---|---|---|---|
Не позволить запустить процедуру дважды в один момент времени. Как? |
|||
|
#18+
Очень много букв не имея полной информации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.12.2017, 11:29:22
|
|||
|---|---|---|---|
Не позволить запустить процедуру дважды в один момент времени. Как? |
|||
|
#18+
Shtock, А почему не for update nowait? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.12.2017, 12:29:35
|
|||
|---|---|---|---|
Не позволить запустить процедуру дважды в один момент времени. Как? |
|||
|
#18+
На всякого мудрецаShtockпрощеСоздать таблицу, вставить запись, удалить запись, если требуется продолжение транзакции без коммита, оборачиваем в автономку. Боремся с последствиями залипания записи при прерывании процедуры.у дбмс-лок нет прав на обычного юзверя и админы обычно не дают, ибо нефиг ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.12.2017, 12:54:05
|
|||
|---|---|---|---|
Не позволить запустить процедуру дважды в один момент времени. Как? |
|||
|
#18+
>>А почему не for update nowait? и эт тоже возможно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.12.2017, 13:01:19
|
|||
|---|---|---|---|
Не позволить запустить процедуру дважды в один момент времени. Как? |
|||
|
#18+
envShtock, А почему не for update nowait? в процедуре по тексту есть commit/rollback .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.12.2017, 13:12:17
|
|||
|---|---|---|---|
|
|||
Не позволить запустить процедуру дважды в один момент времени. Как? |
|||
|
#18+
andreymxобычного юзверяЕсли у обычного пользователя так трясутся пальцы, что он дважды что-то запускает, логично, что админ ему что-то не дает. Если же предполагается асинхронная работа сессий, это уже не "обычный" пользователь. Тем не менее, критерий взаимоотношений с админом сам по себе и критерий простости сам по себе. Вариант нарываться на ora-00001 наиболее сложный в реализации, поэтому я процитировал именно "проще". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.12.2017, 13:14:49
|
|||
|---|---|---|---|
Не позволить запустить процедуру дважды в один момент времени. Как? |
|||
|
#18+
Сестра талантаandreymxобычного юзверяЕсли у обычного пользователя так трясутся пальцы, что он дважды что-то запускает, логично, что админ ему что-то не дает. Если же предполагается асинхронная работа сессий, это уже не "обычный" пользователь. Тем не менее, критерий взаимоотношений с админом сам по себе и критерий простости сам по себе. Вариант нарываться на ora-00001 наиболее сложный в реализации, поэтому я процитировал именно "проще". с точки зрения оракля, обычный юсер, процедура напр открытия/закрытия дня/месяца .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.12.2017, 13:18:45
|
|||
|---|---|---|---|
|
|||
Не позволить запустить процедуру дважды в один момент времени. Как? |
|||
|
#18+
andreymxНа всякого мудрецапропущено... Создать таблицу, вставить запись, удалить запись, если требуется продолжение транзакции без коммита, оборачиваем в автономку. Боремся с последствиями залипания записи при прерывании процедуры.у дбмс-лок нет прав на обычного юзверя и админы обычно не дают, ибо нефигЗвери какие-то у вас админы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.12.2017, 14:56:11
|
|||
|---|---|---|---|
Не позволить запустить процедуру дважды в один момент времени. Как? |
|||
|
#18+
Staxв процедуре по тексту есть commit/rollback Тогда dbms_lock тоже не особо поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.12.2017, 15:20:40
|
|||
|---|---|---|---|
|
|||
Не позволить запустить процедуру дважды в один момент времени. Как? |
|||
|
#18+
envStaxв процедуре по тексту есть commit/rollback Тогда dbms_lock тоже не особо поможет. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.12.2017, 18:38:10
|
|||
|---|---|---|---|
Не позволить запустить процедуру дважды в один момент времени. Как? |
|||
|
#18+
dbms_photoshop, Спасибо. Запамятовал. Равно как и про false по-умолчанию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.12.2017, 18:43:17
|
|||
|---|---|---|---|
Не позволить запустить процедуру дважды в один момент времени. Как? |
|||
|
#18+
envЗапамятовал. Равно как и про false по-умолчанию. 3913031 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=52&tablet=1&tid=1884785]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
22ms |
get topic data: |
8ms |
get forum data: |
5ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 191ms |
| total: | 305ms |

| 0 / 0 |
