режимы разъединения соединения nhibernate: почему делает документацию recommened использующий “after_transaction”?

Быть в спящем режиме документация указывает следующее:

Параметр конфигурации в спящем режиме connection.release_mode, используется для определения который режим выпуска использовать. Возможные значения: *автоматический (значение по умолчанию) - эквивалентный after_transaction в текущем выпуске. Это редко - хорошая идея изменить это поведение по умолчанию, поскольку отказы из-за значения этой установки имеют тенденцию указывать на ошибки и/или недопустимые предположения в пользовательском коде. *on_close - говорит для использования ConnectionReleaseMode. OnClose. В эту установку уезжают назад совместимость, но ее использованию высоко препятствуют...

Я создал интеграционный тест, который провоцирует StaleObjectException путем открытия двух сессий одновременно и управления тем же объектом. Гарантировать, что тестовые списки назад все после завершения, содержание тестирования помещается в TransactionScope; это заставляет распределенные транзакции умирать, потому что две сессии откроют соединение дб против той же окружающей транзакции. Я хочу изменить настройки ConnectionReleaseMode по умолчанию к "OnClose", но как указано выше, документация не рекомендует это. Кто-либо может объяснить почему не хорошая идея изменить поведение по умолчанию?

6
задан Marius 1 January 2010 в 17:50
поделиться

1 ответ

-- 2581906-

Хорошо, поскольку никто не беспокоит, я постараюсь ответить на это сам :-) Если вы используете шаблон, где транзакции принимаются, когда сеанс располагается (одна транзакция = одна сессия) Может также использовать режим выпуска «OnClose». Если вы используете шаблоны, где ваша сессия охватывает несколько транзакций (например, разговор на деловую транзакцию http://dotnetchris.wordpress.com/2009/01/27/Conversation-ber-business- и- IOC / ), Использование «OnClose», будет поддерживать нецелевые ресурсы, потому что вы не освобождаете свои соединения с бассейном соединения при комментарии ваших транзакций. Режим выпуска по умолчанию «After_transaction» отпустит ваше соединение при совершении транзакции, что освободив при этом ваши драгоценные соединения баз данных.

6
ответ дан 17 December 2019 в 02:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: