Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Ну хорошо, пускай оракл, но как в нем узнать, блокирована ли запись ?

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных
Предыдущая тема :: Следующая тема  
Автор Сообщение
Mike



Зарегистрирован: 17.11.2001
Сообщения: 339
Откуда: ekb

СообщениеДобавлено: Пт Сен 05 2003 07:51    Заголовок сообщения: Ну хорошо, пускай оракл, но как в нем узнать, блокирована ли запись ? Ответить с цитатой

Дело в том, что при блокировке записи с помощью например SELECT ..... FOR UPDATE происходит блокировка всех остальных транзакций, которые пытаются работать с заблокированными данными, а это не хорошо, пользователю не понравится, что у него программа виснет периодически ... надо, чтобы был способ проверить, заблокирована ли запись
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Mike



Зарегистрирован: 17.11.2001
Сообщения: 339
Откуда: ekb

СообщениеДобавлено: Пт Сен 05 2003 07:53    Заголовок сообщения: Уточнение Ответить с цитатой

Есть ли в оракле возможность сделать что-то типа TryEnterCriticalSection ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
hydroliser
Гость





СообщениеДобавлено: Пт Сен 05 2003 09:21    Заголовок сообщения: Re: Уточнение Ответить с цитатой

declare
res_busy exception;
pragma exception_init(res_busy,-54);
begin
select field_name into var_name from table_name [where where_clause] for update nowait;
.......
exception
when res_busy then
busy_exception_handler;
[when others then
other_exception_handler;]
end;
Вернуться к началу
hydroliser
Гость





СообщениеДобавлено: Пт Сен 05 2003 09:34    Заголовок сообщения: Re: Уточнение Ответить с цитатой

пояснение к предыдущему реплаю: инструкция nowait в предложениях блокировки требует немедленной блокировки ресурса без ожидания таймаута освобождения ресурса - иначе возникает ошибка ORA-00054 resource busy and acquire with NOWAIT specified. Поскольку для этой ошибки нет предопределенного исключения, мы объявляем свое, а потом пытаемся блокировать ресурс, и в случае его занятости передаем управление в обработчик объявленного исключения.
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...