Внезапно

Проблемы с connection pool и уровнями изоляции транзакций

Базы данных  /  Внезапно dotNET  /  MSSQL

Продолжаю тему, начатую ранее про дырявые абстракции и TransactionScope. Сегодня ещё одна короткая заметка из категории “Внезапно” и снова про уровни изоляции.

Знаете ли вы, какой будет уровень изоляции, когда вы откроете соединение (для определённости — SqlConnection)? Вопрос с подвохом. Правильный ответ, как обычно — It depends.

Внимание! TransactionScope по умолчанию включает Serializable.

Базы данных  /  Внезапно dotNET  /  CSharp

Сегодня о TransactionScope, уровне изоляции транзакций Serializable и дырявых абстракциях.

Вообще говоря, я раньше много раз сталкивался с распределёнными транзакциями. В какой-то момент я окончательно сформировал своё мнение по этой теме. Получилось что-то вроде: “хватит, я не буду их использовать вообще, разве что в ход со стороны оппонента пойдут огнестрельное оружие и прочие нечестные аргументы”.

По этой причине моё знакомство с TransactionScope свелось к его использованию в интеграционных тестах (без распределённой составляющей, просто для удобного отката транзакций) и редким спорам с коллегами. Но сегодня, внезапно…