Триггер без транзакции? - PullRequest
       10

Триггер без транзакции?

2 голосов
/ 21 августа 2008

Можно ли создать триггер, который не будет в транзакции?

Я хочу обновить данные на связанном сервере с помощью триггера, но из-за проблем с межсетевым экраном мы не можем создать распределенную транзакцию между двумя серверами.

Ответы [ 2 ]

2 голосов
/ 27 августа 2008

Что вам, вероятно, нужно, это сочетание очереди, содержащей обновления для связанного сервера, и процесса, который считывает данные из очереди и обновляет удаленный сервер. Затем триггер вставит сообщение в очередь как часть обычной транзакции. Эти данные будут прочитаны отдельным процессом и использованы для обновления удаленного сервера. Логика будет необходима в процессе обработки ошибок (и, возможно, повторных попыток).

Очередь может быть реализована с одной или несколькими таблицами.

2 голосов
/ 21 августа 2008

Я знаю, что это бесполезно, поэтому, вероятно, за это проголосуют, но на самом деле решение состоит в том, чтобы решить проблему с брандмауэром.

Я думаю, что если вы используете удаленные (не связанные) серверы (которые в наши дни не являются предпочтительным вариантом), то вы можете использовать SET REMOTE_PROC_TRANSACTIONS OFF, чтобы предотвратить использование DTC для удаленных транзакций, что может быть правильным. Но это, вероятно, не поможет вам со связанным сервером.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...