|
|
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Как можно ждать в функции без использования системных ресурсов, не используя функцию процедуры dbms_lock.sleep.То есть есть ли какой-то аналог этой процедуры? Просто подключение пакета сопряжено с некоторыми трудностями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 14:12 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 14:14 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
А ресурсы эта штука не жрет. Это же сколько сравнений надо сделать, чтоб одну секунду прождать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 14:16 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Muxx1986А ресурсы эта штука не жрет. Это же сколько сравнений надо сделать, чтоб одну секунду прождать? Ещё как жрёт! PS. На дурацкие вопросы, можно получить только дурацкие ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 14:21 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Muxx1986Просто подключение пакета сопряжено с некоторыми трудностями. Решать их. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 14:23 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Muxx1986не используя dbms_lock.sleep. Просто подключение пакета сопряжено с некоторыми трудностями.Лучше их преодолеть. Например, DBA может обврапить этот вызов отдельной процедурой и выдать права только на неё. Хотя после прогона парочки прогонов токих вечных циклов он сам прибежит искать консенсус :) Ещё под выдерживание таймаута можно приспособить dbms_pipe, utl_tcp, utl_http, ... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 14:24 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Muxx1986А ресурсы эта штука не жрет. Это же сколько сравнений надо сделать, чтоб одну секунду прождать? Жрёт :) А итераций не очень много: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Еще наверняка можно на Java написать. Может кто умеет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 14:25 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Muxx1986Просто подключение пакета сопряжено с некоторыми трудностями. Полагаю, Вам лучше эти трудности преодолеть. Sleep, конечно, сделать можно - например, повиснуть на блокировке, которая освободится через заданное время параллельным процессом (на вскидку - можно соорудить из двух job и dbms_pipe), то это сильно напоминает удаление гланд через задний проход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 14:25 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Какие остроумные ответы. Можно было бы просто написать "Не знаю". Возможности обойтись без dbms_lock.sleep нету? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 14:27 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Muxx1986Какие остроумные ответы. Можно было бы просто написать "Не знаю". Возможности обойтись без dbms_lock.sleep нету? Вы читать не умеете? Вам предложили несколько вариантов на выбор, но все сходятся в том, что лучшим решением будет все-таки использование dbms_lock.sleep. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 14:33 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Muxx1986Какие остроумные ответы. Что ж. Тогда создавай себе и решай свои проблемы сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 14:34 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Muxx1986Какие остроумные ответы. Можно было бы просто написать "Не знаю". Возможности обойтись без dbms_lock.sleep нету? Блокировки допустимы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 14:35 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
db-man Код: plaintext 1. 2. 3. убивать на месте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 14:52 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
slepslap Muxx1986Какие остроумные ответы. Можно было бы просто написать "Не знаю". Возможности обойтись без dbms_lock.sleep нету? Блокировки допустимы? зачем решать через жопу то что всегда можно решить прямо ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 14:53 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
slepslap Muxx1986Какие остроумные ответы. Можно было бы просто написать "Не знаю". Возможности обойтись без dbms_lock.sleep нету? Блокировки допустимы? авторподключение пакета (dbms_lock) сопряжено с некоторыми трудностями PS. Воистину, на одну здравую мысль есть бесконечное множество дурацких. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 14:55 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
mcureenab slepslapБлокировки допустимы?Твоя мысль неочевидна. Но если ты на вопрос отвечаешь словами автора, то сам же попадпешь в то самое множество ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 15:13 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
а этот sleep - он точно нужен? Может, без него можно обойтись? Чего вы ждёте-то на сервере/от сервера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 15:18 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
убивать на месте Угу. Но это они сами виноваты - привилегию не хотят давать :) Еще вот что есть: SYS.DBMS_BACKUP_RESTORE.SLEEP(10); Но на этот пакет у вас 100% нет прав. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 15:24 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
db-man убивать на месте Угу. Но это они сами виноваты - привилегию не хотят давать :) Справедливости ради следует отметить, что не всегда возможно дать привилегии без остановки эксплуатируемой прикладной системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 15:25 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Вызов :dbms_lock.sleep == semtimedop (SunOS star 5.10) Таким образом напишите программку на C которая получит номер светофора используемый ораклом вызовите ее из оракла и будет вам счастье ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 15:29 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
evgenygВызов :dbms_lock.sleep == semtimedop (SunOS star 5.10) Таким образом напишите программку на C которая получит номер светофора используемый ораклом вызовите ее из оракла и будет вам счастье Гыг ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 15:36 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 15:40 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
db-manas language java А теперь вернемся к вопросу о ресурсах... Во что, говорите, обходится запуск такой функции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 15:41 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)зачем решать через жопу то что всегда можно решить прямо ?Как один из вариантов объяснения причин: http://www.neuro.net.ru/bibliot/b003/sx04060.html А может мы просто отстали от жизни и это мода нынче такая: http://voffka.com/archives/2007/06/13/036254.html Fucker ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 15:48 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Сына evgenygВызов :dbms_lock.sleep == semtimedop (SunOS star 5.10) Таким образом напишите программку на C которая получит номер светофора используемый ораклом вызовите ее из оракла и будет вам счастье Гыг ))) semop, semtimedop - semaphore operations , а как я это назвал без разницы :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 15:48 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
evgenygа как я это назвал без разницы :). Да я подоброму :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 15:53 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
quot andreymx]а этот sleep - он точно нужен? Может, без него можно обойтись? Чего вы ждёте-то на сервере/от сервера?[[/quot] В функции запускается job. И нужно подождать его завершения для продолжения работы функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 15:58 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
slepslap Muxx1986Какие остроумные ответы. Можно было бы просто написать "Не знаю". Возможности обойтись без dbms_lock.sleep нету? Блокировки допустимы? Если блокировки допустимы, то можно реализовать так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Необходимо только оформить это все красиво в PL/SQL с обработкой исключения и вызова в виде отдельной процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:01 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Muxx1986 andreymxа этот sleep - он точно нужен? Может, без него можно обойтись? Чего вы ждёте-то на сервере/от сервера?[В функции запускается job. И нужно подождать его завершения для продолжения работы функции.А запускать надо именно job-ом? Есть показания? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:03 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Есть список функций в формате CHAR. Они содержат DML и COMMIT. Их нельзя менять. Надо их выполнить. Я для этого использую job. Можно ли иначе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:06 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Muxx1986 andreymxа этот sleep - он точно нужен? Может, без него можно обойтись? Чего вы ждёте-то на сервере/от сервера?[В функции запускается job. И нужно подождать его завершения для продолжения работы функции.почему-то так и подумал... Но вопрос Jannny я бы тоже задал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:08 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Muxx1986quot andreymx]а этот sleep - он точно нужен? Может, без него можно обойтись? Чего вы ждёте-то на сервере/от сервера?[ В функции запускается job. И нужно подождать его завершения для продолжения работы функции.[/quot] В этом случае sleep - решает второстепенную задачу. Как бы надо прочуствовать разницу между sleep (сон) и wait (ожидание). Можно спать когда кого то ждёшь, но сон не означает ожидание кого либо. А почему job нельзя запустить синхронно в текущей сессии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:09 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Muxx1986Есть список функций в формате CHAR. Они содержат DML и COMMIT. Их нельзя менять. Надо их выполнить. Я для этого использую job. Можно ли иначе? 1) Не использовать ddl 2) автономка Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:10 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Muxx1986В функции запускается job. И нужно подождать его завершения для продолжения работы функции. Сеемееееен Семеныч! Ну так бы и говорили - надо дождаться завершения работы job... Все просто - в job развешиваете пользовательскую блокировку (dbms_lock), процесс пытается ее захватить в несовместимой mode. Все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:11 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Muxx1986Есть список функций в формате CHAR. Они содержат DML и COMMIT. Их нельзя менять. Надо их выполнить. Я для этого использую job. Можно ли иначе?Имеется ввиду, что они не должны закоммитить данные текущей транзакции или что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:12 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
andrey anonimousСеемееееен Семеныч! Ну так бы и говорили - надо дождаться завершения работы job... Все просто - в job развешиваете пользовательскую блокировку (dbms_lock), процесс пытается ее захватить в несовместимой mode. Все. Можно поподробней? Права на dbms_lock есть только через роль.Так сработает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:15 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
JannyИмеется ввиду, что они не должны закоммитить данные текущей транзакции или что? Функции работают с одной таблицей. И необходимо добиться их последовательного выполнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:16 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous db-man убивать на месте Угу. Но это они сами виноваты - привилегию не хотят давать :) Справедливости ради следует отметить, что не всегда возможно дать привилегии без остановки эксплуатируемой прикладной системы. убивать всех. лень админа не повод ставить на колени сервер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:16 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Muxx1986Можно поподробней? Права на dbms_lock есть только через роль.Так сработает? Боюсь, что права потребуются прямые. Но без dbms_lock можно легко обойтись - создайте служебную табличку с одной строкой. job делает update locktable set status='done' , приложение - select for update и проверяет статус :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:21 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Muxx1986 JannyИмеется ввиду, что они не должны закоммитить данные текущей транзакции или что?Функции работают с одной таблицей. И необходимо добиться их последовательного выполнения.Ну так а зачем джоб? Запускаете последовательно(динамикой). То, что у Вас коммиты посередине, можно "прикрыть" автономной транзакцией, но целостности транзакции Вам все равно не получить - что так, что этак... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:23 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan) andrey_anonymous db-man убивать на месте Угу. Но это они сами виноваты - привилегию не хотят давать :) Справедливости ради следует отметить, что не всегда возможно дать привилегии без остановки эксплуатируемой прикладной системы. лень админа не повод ставить на колени сервер Ви нэ понялы - это может зависеть от дизайна системы, а не от лени админа. Если, к примеру, нужный пакет постоянно используется каким-нть очень нужным "вечным" job, то пишите письма... ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:23 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
А статус оно как проверяет? Не очень понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:24 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Все как обычно До сих пор в памяти жив тот Кондратий, который меня чуть не охватил, когда я узрел (в очень сурьезном продукте) подобный sleep через цикл там где можно было обойтись select for update !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:24 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
The query would then look like this: 1 SELECT S.USERNAME,S.SID,P.SPID 2 FROM V$SESSION S,V$PROCESS P 3 WHERE S.PADDR=P.ADDR AND 4* S.USERNAME='SCOTT' SQL> / USERNAME SID SPID ------------------------------ ---------- ------------ SCOTT 36 12518 Attaching the debugger to the given session can now be done by the following command: SQL> oradebug setospid 12518 Oracle pid: 19, Unix process pid: 12518, image: oracle10g@medo.noip.com Suspending and resuming sessions This example is given only for completeness, In reality, need for suspending user sessions arises very infrequently, and even then, we should look for an alternative solution, if possible. Suspending and resuming a session is an internal operation and, as such, should be used only when truly necessary or requested by oracle support. We can suspend the session that we have attached our debugger to, by using the following command: SQL> oradebug suspend Statement processed. The process that debugger is attached to will be suspended. It is important not to try that with the sessions that are connected through the dispatcher (MTS) because, the session will find another free shared server process to execute its SQL command. This is well suited for dedicated server sessions only. The dedicated server session that I attached my process to will appear to be hanging and will not react to SQL. Reaction will come only when I resume the session with the following command: SQL> oradebug resume Statement processed. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:25 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Muxx1986А статус оно как проверяет? Не очень понятно. Пропустил пост с назначением job. Присоединяюсь к Janny, скорее всего job не нужен. ...статус же проверять надо чтобы убедиться, что сессия не захватила блокировку до того, как ее зацепил job. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:27 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
только на это надо привелегии sysdba ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:27 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
To Gluk Можешь написать как нужно сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:27 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous Muxx1986Можно поподробней? Права на dbms_lock есть только через роль.Так сработает? Боюсь, что права потребуются прямые. Но без dbms_lock можно легко обойтись - создайте служебную табличку с одной строкой. job делает update locktable set status='done' , приложение - select for update и проверяет статус :) А мой способ не лучше, которй я выше написал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:28 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous Gluk (Kazan) andrey_anonymous db-man убивать на месте Угу. Но это они сами виноваты - привилегию не хотят давать :) Справедливости ради следует отметить, что не всегда возможно дать привилегии без остановки эксплуатируемой прикладной системы. лень админа не повод ставить на колени сервер Ви нэ понялы - это может зависеть от дизайна системы, а не от лени админа. Если, к примеру, нужный пакет постоянно используется каким-нть очень нужным "вечным" job, то пишите письма... ;) См. мой предыдущий пост. Я не был бы столь кровожаден будь ситуация менее жизненной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:28 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Muxx1986To Gluk Можешь написать как нужно сделать? могу сколько заплатишь ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:30 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Partos SQL> oradebug resume Statement processed. oradebug - это средство для админов при работе с саппортом. Вы предлагаете его использовать для решения пользовательских задач ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:30 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
ГостЪ Muxx1986Есть список функций в формате CHAR. Они содержат DML и COMMIT. Их нельзя менять. Надо их выполнить. Я для этого использую job. Можно ли иначе? 1) Не использовать ddl 2) автономка Код: plaintext Чтобы операцией DBMS_JOB.SUBMIT поместить job в очередь на выполнение нужно выполнить COMMIT. Так что ссылка на COMMIT как на некое препятствие выглядит нелогично, он всё равно нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:30 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
andrey_anonymousи проверяет статус :) что-то я не уловил. как часто проверяет статус? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:32 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
slepslapА мой способ не лучше, которй я выше написал? Это решение к задаче в оригинальной формулировке, в то время как автор решает совсем другую ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:33 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Если делать динамическим SQL через insert, то там в функции COMMIT не может применятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:33 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
a398 andrey_anonymousи проверяет статус :) что-то я не уловил. как часто проверяет статус? Адын разЪ, если не 'done', то откат до припасенного savepoint и новая попытка :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:34 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
mcureenab ГостЪ Muxx1986Есть список функций в формате CHAR. Они содержат DML и COMMIT. Их нельзя менять. Надо их выполнить. Я для этого использую job. Можно ли иначе? 1) Не использовать ddl 2) автономка Код: plaintext Чтобы операцией DBMS_JOB.SUBMIT поместить job в очередь на выполнение нужно выполнить COMMIT. Так что ссылка на COMMIT как на некое препятствие выглядит нелогично, он всё равно нужен. Это был ответ на вопрос, можно ли иначе ( т.е. без job'ов) :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:35 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
a398 andrey_anonymousи проверяет статус :) что-то я не уловил. как часто проверяет статус? Кляуза for update WAIT X определяет периодичность проверки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:35 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous a398 andrey_anonymousи проверяет статус :) что-то я не уловил. как часто проверяет статус? Адын разЪ, если не 'done', то откат до припасенного savepoint и новая попытка :) и оно ресурсов не потребляет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:36 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
slepslap Partos SQL> oradebug resume Statement processed. oradebug - это средство для админов при работе с саппортом. Вы предлагаете его использовать для решения пользовательских задач Я знаю что это за средство. Предлагаю, точно так же как и Факер, не заниматься анальным сексом и использовать dbms_lock.sleep. Реальных причин чтоб его не использовать и тем более реально объяснённых причин "в чём его проблемно подключить" я пока так и не увидел. Вставил ЭТО я только как ещё один вариант, удовлетворяющий условиям начального поста, но который я бы очень не рекомендовал использовать автору. З.Ы. Иногда эту вещь можно использовать не только при общении с сапортом! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:36 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
mcureenabКляуза for update WAIT X определяет периодичность проверки. wait x не нужен, ему надо завершения job дождаться. Поэтому просто for update. А на самом деле и job не нужен - autonomous transaction спасет отца русской демократии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:37 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
mcureenab a398 andrey_anonymousи проверяет статус :) что-то я не уловил. как часто проверяет статус? Кляуза for update WAIT X определяет периодичность проверки. был не прав. сенкс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:37 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Если делать динамическим SQL через insert, то там в функции COMMIT не может применятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:38 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
PartosЗ.Ы. Иногда эту вещь можно использовать не только при общении с сапортом! ага, особенно в клиентских приложениях ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:38 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
andrey_anonymous slepslapА мой способ не лучше, которй я выше написал? Это решение к задаче в оригинальной формулировке, в то время как автор решает совсем другую ;) бред ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:38 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
slepslap PartosЗ.Ы. Иногда эту вещь можно использовать не только при общении с сапортом! ага, особенно в клиентских приложениях Именно!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:39 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Muxx1986Если делать динамическим SQL через insert, то там в функции COMMIT не может применятся.Переведите... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:39 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
slepslap andrey_anonymous slepslapА мой способ не лучше, которй я выше написал? Это решение к задаче в оригинальной формулировке, в то время как автор решает совсем другую ;)бред Доктор, перечтите форум и сдерживайтесь, пожалуйста, по мере возможности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:40 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
ГостЪ mcureenab ГостЪ Muxx1986Есть список функций в формате CHAR. Они содержат DML и COMMIT. Их нельзя менять. Надо их выполнить. Я для этого использую job. Можно ли иначе? 1) Не использовать ddl 2) автономка Код: plaintext Чтобы операцией DBMS_JOB.SUBMIT поместить job в очередь на выполнение нужно выполнить COMMIT. Так что ссылка на COMMIT как на некое препятствие выглядит нелогично, он всё равно нужен. Это был ответ на вопрос, можно ли иначе ( т.е. без job'ов) :) Логика железная. - Я хочу яблок, но их неу у меня. - Купи слона. Собственно нужно использовать AUTONOMOUS_TRANSACTION, а всё остальное тут нахрен не нужно, а скорее всего и AUTONOMOUS_TRANSACTION тоже. PS. Админ прав, что не даёт системных привилегий на всякие глупости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:41 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
mcureenab ГостЪ mcureenab ГостЪ Muxx1986Есть список функций в формате CHAR. Они содержат DML и COMMIT. Их нельзя менять. Надо их выполнить. Я для этого использую job. Можно ли иначе? 1) Не использовать ddl 2) автономка Код: plaintext Чтобы операцией DBMS_JOB.SUBMIT поместить job в очередь на выполнение нужно выполнить COMMIT. Так что ссылка на COMMIT как на некое препятствие выглядит нелогично, он всё равно нужен. Это был ответ на вопрос, можно ли иначе ( т.е. без job'ов) :) Логика железная. - Я хочу яблок, но их неу у меня. - Купи слона. Собственно нужно использовать AUTONOMOUS_TRANSACTION, а всё остальное тут нахрен не нужно, а скорее всего и AUTONOMOUS_TRANSACTION тоже. PS. Админ прав, что не даёт системных привилегий на всякие глупости. Логики не понял:) Как автор создаёт job нам неизвестно, может в начале своей транзакции и делает commit, может через dbms_scheduler (там кажется создание job'а идет в автономке) но факт, что он избегает commit'а , который в jobe. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:46 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Muxx1986Как можно ждать в функции без использования системных ресурсов, не используя функцию процедуры dbms_lock.sleep.То есть есть ли какой-то аналог этой процедуры? Просто подключение пакета сопряжено с некоторыми трудностями. Какая версия Oracle? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 16:49 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Muxx19869i Тогда придется самостоятельно все писать. Общая идеология следующая. Создаете job. В нем выполняете функцию. Если выполнилась удачно, в этом job запускаете новый job, в котором выполняете действия после удачного выполнения. Если неудачно, то другой job - с действиями после неудачного выполнения. Писать в первое время много. Можно поискать готовые решения механизма для 9i. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 17:09 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
SplainСоздаете job. В нем выполняете функцию. Если выполнилась удачно, в этом job запускаете новый job, в котором выполняете действия после удачного выполнения. Если неудачно, то другой job - с действиями после неудачного выполнения. В тему не вникал, просто любопытно: а что в один job все это засунуть не судьба ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 17:10 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan) В тему не вникал, просто любопытно: а что в один job все это засунуть не судьба ??? Думаю что можно. Но автор упорно хочет выполнять функции в отдельных job-ах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 17:19 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
автор странный, это факт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 17:22 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Splain Muxx19869i Тогда придется самостоятельно все писать. ... А если не самостоятельно , то что имелось ввиду? P.S Автор немножко партизан:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 17:24 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
ГостЪ А если не самостоятельно , то что имелось ввиду? В 10g по слухам подобное можно сделать с помощью пакета DBMS_SCHEDULER Oracle® Database Administrator's Guide 10g Release 2 Scheduler Concepts ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 17:35 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Splain Gluk (Kazan) В тему не вникал, просто любопытно: а что в один job все это засунуть не судьба ??? Думаю что можно. Но автор упорно хочет выполнять функции в отдельных job-ах. А потом автор придёт с вопросом, почему у него в системе кол-во одновременно открытых сессий достигло максимума. Джоба - фоновый процесс, и если нет необходимости именно в фоновой работе (например, расчёт каких-нибудь отчётов по расписанию), имхо, обойдитесь лучше другими более лёгкими для базы средствами в рамках своей сессии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 22:39 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
spat А потом автор придёт с вопросом, почему у него в системе кол-во одновременно открытых сессий достигло максимума. См. параметр JOB_QUEUE_PROCESSES ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 09:21 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
spat Splain Gluk (Kazan) В тему не вникал, просто любопытно: а что в один job все это засунуть не судьба ??? Думаю что можно. Но автор упорно хочет выполнять функции в отдельных job-ах. А потом автор придёт с вопросом, почему у него в системе кол-во одновременно открытых сессий достигло максимума. Джоба - фоновый процесс, и если нет необходимости именно в фоновой работе (например, расчёт каких-нибудь отчётов по расписанию), имхо, обойдитесь лучше другими более лёгкими для базы средствами в рамках своей сессии. низачот ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2007, 10:02 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
Уважаемые, тема старая, но в поиске вылезает первой, прошло много лет - появились новые варианты для гурманов, не употребляющих dbms_lock, цитата отсюда: https://oracledeli.wordpress.com/2017/03/31/plsql-sleep-without-using-dbms_lock/ Option 1: APEX_UTIL.sleep If APEX is installed you can use the procedure “PAUSE” from the publicly available package APEX_UTIL. Example – “Wait 5 seconds”: Код: plsql 1. 2. 3. 4. 5. 6. 7. Option 2: java.lang.Thread.sleep An other option is the use of the method “sleep” from the Java class “Thread”, which you can easily use through providing a simple PL/SQL wrapper procedure: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2018, 11:52 |
|
||
|
ждать без sleep
|
|||
|---|---|---|---|
|
#18+
А для Оракла 18 новое щастье: цитата отсюда https://oracle-base.com/articles/18c/dbms_session-sleep-18c DBMS_SESSION.SLEEP Replaces DBMS_LOCK.SLEEP in Oracle Database 18c The SLEEP procedure is added to the DBMS_SESSION package and deprecated from the DBMS_LOCK package in Oracle Database 18c. The SLEEP procedure is added to the DBMS_SESSION package, so it is available to all sessions with no additional grants needed and no dependency on the DBMS_LOCK package. The procedure suspends the session for the specified number of seconds. The seconds parameter can accept any valid number, including fractions of a second. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ВАЖНО: The Oracle 18c documentation no longer lists the SLEEP procedure in the DBMS_LOCK package, but it is still present for backwards compatibility. It is now deprecated, so you should transition your code to use the DBMS_SESSION package instead, and revoke any grants to the DBMS_LOCK package where they were only granted to give access to the SLEEP procedure. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2018, 11:59 |
|
||
|
|

start [/forum/topic.php?all=1&fid=52&tid=1883429]: |
0ms |
get settings: |
5ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
144ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 436ms |

| 0 / 0 |
