Доброго времени суток!
В статье про транзакции на ibase.ru есть такой отрывок
Есть еще один интересный момент. Проверяя режимы транзакций я обнаружил, что если одна транзакция consistency блокирует таблицу в режиме shared_write, то другая транзакция consistency при попытке открыть таблицу в режиме shared_read "повиснет" (именно в момент открытия таблицы). В то же время попытка открыть эту же таблицу в режиме shared_write завершается полным успехом. Разумеется, зависание происходит уже на попытке редактирования, но это уже несущественно. Т.е. как указано в таблице выше блокировки shared_write действительно не конфликтуют, но вот блокировки shared_write и shared_read конфликтуют. Не знаю, чем это вызвано - или так действительно должно работать, или это относится к странностям реализации fibc/IBX (хотя вряд ли).
С удивлением обнаружил, что на 2.1 (во всяком случае, 2.1.0.16865) это остается в силе (проверял через IBX 6.08). Это тем более странно, что lock_read+shared, как я понимаю, ничего не блокирует. Баг? С уважением, Евгений

