powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вопрос пр ORA-08177 Cant serialize access for this transaction
9 сообщений из 9, страница 1 из 1
Вопрос пр ORA-08177 Cant serialize access for this transaction
    #39469550
dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
[SRC PLSQL][SRC PLSQL][SRC PLSQL]Create table u1 (a int, b int);
insert into u1 values (1,1);
insert into u1 values (2,2);
insert into u1 values (3,3);
insert into u1 values (4,4);
insert into u1 values (5,5);
commit;

[/SRC][/SRC][/SRC]
-----------------------
Теперь делаем в двух сессиях:
Сессия1:
Код: plsql
1.
set transaction isolation level serializable;



Сессия2:
Код: plsql
1.
2.
update u1 set b=8 where a=1;
commit;


Сессия1:
Код: plsql
1.
2.
update u1 set b=6 where a=2;
commit;



получаем ORA-08177 (хотя меняем другую строку, но ок)
А теперь делаем то же самое, но после начала 1ой транзакции сразу проапдейтим третью строку:
Сессия1:
Код: plsql
1.
2.
set transaction isolation level serializable;
update u1 set b=b where a=3;



Сессия2:
Код: plsql
1.
2.
update u1 set b=8 where a=1;
commit;


Сессия1:
Код: plsql
1.
2.
update u1 set b=6 where a=2;
commit;



И теперь все нормально. Вопрос - почему так и можно ли рассчитывать на то что так будет всегда?
...
Рейтинг: 0 / 0
Вопрос пр ORA-08177 Cant serialize access for this transaction
    #39469581
Dmitry,

Какой INITRANS у таблицы?
...
Рейтинг: 0 / 0
Вопрос пр ORA-08177 Cant serialize access for this transaction
    #39469586
Судя по всему, INITRANS у вас 1. Надо как минимум 3:
Дока , раздел "Setting Isolation Levels"
...
Рейтинг: 0 / 0
Вопрос пр ORA-08177 Cant serialize access for this transaction
    #39469589
dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1, по дефолту
...
Рейтинг: 0 / 0
Вопрос пр ORA-08177 Cant serialize access for this transaction
    #39469632
ORA__SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Армэн БэкапянСудя по всему, INITRANS у вас 1. Надо как минимум 3"Как INITRANS влияет на ORA-08177?
...
Рейтинг: 0 / 0
Вопрос пр ORA-08177 Cant serialize access for this transaction
    #39469802
dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По ходу влияет, спасибо. Но вопросы остались

Меняем в примере создание таблицы на
Код: plsql
1.
Create table u1 (a int, b int) initrans 50;


Первая часть - все так же приводит к ORA-08177
Вторая часть теперь тоже приводит к ней же.
Но если после начала серилизованной транзакции я меняю (или читаю for update) ту строку которую потом хочу проапдейтить то потом дает ее проадейтить

Сессия1:
Код: plsql
1.
2.
set transaction isolation level serializable;
select * from u1 where a=2 for update;



Сессия2:
Код: plsql
1.
2.
update u1 set b=8 where a=1;
commit;



Сессия1:
Код: plsql
1.
2.
update u1 set b=6 where a=2;
commit;



Что характерно. Если поменять initrans не через пересоздвание таблицы а через Alter table u1 initrans 50
то поведение остается прежним, описанном в первом посте
...
Рейтинг: 0 / 0
Вопрос пр ORA-08177 Cant serialize access for this transaction
    #39469814
концепты
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Армэн Бэкапян]Dmitry,

Какой INITRANS у таблицы?[/quot

Какой нафик INITRANS ]
...
Рейтинг: 0 / 0
Вопрос пр ORA-08177 Cant serialize access for this transaction
    #39469815
Лет 10 -15 назад в разделе сравнения СУБД
блокировчники с вепсиониками на тему сравнения изолированностей
наломали сколько компьев , что современные поличитеские срачи просто отдыхают :)
...
Рейтинг: 0 / 0
Вопрос пр ORA-08177 Cant serialize access for this transaction
    #39469875
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryЧто характерно. Если поменять initrans не через пересоздвание таблицы а через Alter table u1 initrans 50
то поведение остается прежним, описанном в первом постеЕстественно, оно же действует только на вновь выделенные блоки.

Вообще, видимо в силу малоупотребимости, SERIALIZABLE штука капризная.
Еще 5 лет назад _Nikotin и др. баловались с ней
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вопрос пр ORA-08177 Cant serialize access for this transaction
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]