|
|
|
ждать без 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 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=34592261&tid=1883429]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
5ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 317ms |

| 0 / 0 |
