Привет всем.
Просветите меня, плиз - насчет параллельного выполнения DDL запросов
FB2.5 SuperServer
Создаются разные объекты. Уровни изоляции транзакций тоже разные :-)
Если работать только в READCOMMITTED, то проблем нет.
Подключение #1 ++++++++++++++++++++++
[05.03.2009 14:35:38] [test_002_impl] START TRANSACTION [READCOMMITTED]...
[05.03.2009 14:35:38] [test_002_impl] GENERATE ID [GEN_ID_DDL]. Count:1
[05.03.2009 14:35:38] [test_002_impl] EXEC IMMED: "create table
DDL_TEST_TABLE_5 (ID INTEGER)"
[05.03.2009 14:35:38] [test_002_impl] EXEC IMMED: "create generator
GEN_TEST_DDL_DEL_COUNT_5"
[05.03.2009 14:35:38] [test_002_impl] EXEC IMMED: "create trigger
AD_DDL_TEST_TABLE_5 for DDL_TEST_TABLE_5
after delete
as
declare variable x integer
;begin
x=gen_id(GEN_TEST_DDL_DEL_COUNT_5,1);
end"
[05.03.2009 14:35:38] [test_002_impl] COMMIT TRANSACTION
[RETAINING=false]...
Подключение #2 ++++++++++++++++++++++
[05.03.2009 14:35:38] [test_002_impl] START TRANSACTION [REPEATABLEREAD]...
[05.03.2009 14:35:38] [test_002_impl] GENERATE ID [GEN_ID_DDL]. Count:1
[05.03.2009 14:35:38] [test_002_impl] EXEC IMMED: "create table
DDL_TEST_TABLE_6 (ID INTEGER)"
[05.03.2009 14:35:38] [test_002_impl] EXEC IMMED: "create generator
GEN_TEST_DDL_DEL_COUNT_6"
[05.03.2009 14:35:38] [test_002_impl] EXEC IMMED: "create trigger
AD_DDL_TEST_TABLE_6 for DDL_TEST_TABLE_6
after delete
as
declare variable x integer
;begin
x=gen_id(GEN_TEST_DDL_DEL_COUNT_6,1);
end"
[05.03.2009 14:35:38] [test_002_impl] COMMIT TRANSACTION
[RETAINING=false]...
[05.03.2009 14:35:38] ERROR: [cmd|cmd.group_005.cmd_ddl_02_rr] Commit
transaction
1. [LCPI.IBProvider.3]: Ошибка подтверждения транзакции.
deadlock
update conflicts with concurrent update
concurrent transaction number is 3110
----
Коваленко Дмитрий.