トランザクションに含まれないトリガーを作成することはできますか?
トリガーを使用してリンク サーバー上のデータを更新したいのですが、ファイアウォールの問題により、2 つのサーバー間で分散トランザクションを作成できません。
トランザクションに含まれないトリガーを作成することはできますか?
トリガーを使用してリンク サーバー上のデータを更新したいのですが、ファイアウォールの問題により、2 つのサーバー間で分散トランザクションを作成できません。
役に立たないことはわかっているので、おそらく反対票を投じられるでしょうが、実際の解決策はファイアウォールの問題を修正することです。
リモート (リンクされていない) サーバー (最近は推奨されるオプションではありません) を使用している場合は、SET REMOTE_PROC_TRANSACTIONS OFF を使用して、リモート トランザクションに DTC を使用しないようにすることができます。しかし、とにかく、それはおそらくリンクされたサーバーでは役に立ちません.
おそらく必要なのは、リンク サーバーの更新を含むキューと、キューからデータを読み取ってリモート サーバーを更新するプロセスの組み合わせです。トリガーは、通常のトランザクションの一部としてメッセージをキューに挿入します。このデータは別のプロセスによって読み取られ、リモート サーバーの更新に使用されます。処理エラー (および場合によっては再試行) にはロジックが必要です。
キューは、1 つ以上のテーブルで実装できます。