Что делать, когда не поддерживаются ни одно транзаки, ни вложенные транзакции?

StackOverflow https://stackoverflow.com/questions/3851963

Вопрос

Skresscope - это удивительная особенность, но слишком мало провайдеров выполняет его правильно. Я не хочу проходить соединение в качестве параметра.

Это было полезно?

Решение

Не уверен, что вы хотели достичь использования с использованием трансферов здесь - если идею состоит в том, чтобы иметь аутматичный поток транзакций по методам (и простое привлечение в течение текущей транзакции), а затем передавать соединение в качестве параметра не единственный способ. Вы можете передавать текущее соединение и транзакцию с использованием текущего Callcontext. (или текущий поток). Поместите простую статическую обертку, которая проверяла, существует ли соединение / транзакция на текущем контексте вызова и создает, если нет. Это прозрачный не навязчивый способ, в отличие от прохождения по параметру.

Теперь, если вы смотрите на текущие транзакции по границам домена приложения и / или используете несколько менеджеров по нескольким ресурсам (т. Е. Использование распределенных транзакций), то наилучшие ставки будут использовать транссуждения и развернуть Ваш собственный ResourceManager. Отказ Конечно, это не тривиальная вещь, но тогда это то, что требование влечет за собой. Если базовая система не предусматривает транзакционный ресурс, то пользовательский диспетчер ресурсов может использовать компенсацию транзакции для сброса отката (например, менеджер в верхней части файловой системы может использовать «удалить папку» в качестве компенсирующей транзакции от оригинальной транзакции «Создать папку») Отказ

Другие советы

Может быть, вы ищете Распространенность системы.

В основном, каждая транзакция журнал (Детали транзакции сохраняются), и если приложение вылетает и перезапускается, вы можете либо забрать, где вы остановились или откаты от изменений в зависимости от состояния журнала.

Вот ссылка на Снимок снимка Это может помочь вам в реализации распространенности системы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top