timeout: distributed transaction waiting for lock
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
kdmitriev Участник со стажем
Вступление в Клуб: 26.06.2007
|
Ср Янв 27, 2010 10:39  timeout: distributed transaction waiting for lock |
|
Полезность: Нет оценки
|
При выполнении INSERT SELECT * FROM ...@LINK возникает
timeout: distributed transaction waiting for lock
как с этим бороться ?
Как всегда - спасибо, сто грамм и пончик |
|
 |
w00per Профи
Вступление в Клуб: 17.10.2007
|
Ср Янв 27, 2010 11:15   |
|
Полезность: Нет оценки
|
Цитата: | Когда пользователь выдает предложение SQL, ORACLE пытается заблокировать требуемые ресурсы, чтобы успешно выполнить это предложение. Если запрашиваемые данные удерживаются другой неподтвержденной транзакцией, и эта блокировка сохраняется чрезмерно долгое время, то может возникнуть таймаут, и возвращается следующее сообщение:
ORA-2049: time-out: distributed transaction waiting for lock
Поскольку никакие данные не были модифицированы, такой таймаут не требует никаких действий, и ваше приложение должно продолжать так, как будто был обнаружен захват. Интервал таймаута можно устанавливать посредством параметра инициализации DISTRIBUTED_LOCK_TIMEOUT |
_________________ I Lie About Everything. |
|
 |
kdmitriev Участник со стажем
Вступление в Клуб: 26.06.2007
|
Ср Янв 27, 2010 11:29   |
|
Полезность: Нет оценки
|
w00per пишет: | Цитата: | Когда пользователь выдает предложение SQL, ORACLE пытается заблокировать требуемые ресурсы, чтобы успешно выполнить это предложение. Если запрашиваемые данные удерживаются другой неподтвержденной транзакцией, и эта блокировка сохраняется чрезмерно долгое время, то может возникнуть таймаут, и возвращается следующее сообщение:
ORA-2049: time-out: distributed transaction waiting for lock
Поскольку никакие данные не были модифицированы, такой таймаут не требует никаких действий, и ваше приложение должно продолжать так, как будто был обнаружен захват. Интервал таймаута можно устанавливать посредством параметра инициализации DISTRIBUTED_LOCK_TIMEOUT |
|
я правильно понял ?
EXECUTE_SQL('DISTRIBUTED_LOCK_TIMEOUT') |
|
 |
w00per Профи
Вступление в Клуб: 17.10.2007
|
Ср Янв 27, 2010 11:51   |
|
Полезность: Нет оценки
|
Нет, либо увеличить значение параметра "DISTRIBUTED_LOCK_TIMEOUT", либо переписать конструкцию "INSERT SELECT * FROM ...@LINK" на цикл по курсору с COMMITом при каждой итерации, либо создать вьюху(а не вставлять записи в таблицу). _________________ I Lie About Everything. |
|
 |
kdmitriev Участник со стажем
Вступление в Клуб: 26.06.2007
|
Ср Янв 27, 2010 13:00   |
|
Полезность: Нет оценки
|
w00per пишет: | Нет, либо увеличить значение параметра "DISTRIBUTED_LOCK_TIMEOUT", либо переписать конструкцию "INSERT SELECT * FROM ...@LINK" на цикл по курсору с COMMITом при каждой итерации, либо создать вьюху(а не вставлять записи в таблицу). |
примера нет никакого ?  |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|