Question

Est-il possible de créer un déclencheur qui ne sera pas dans une transaction ?

Je souhaite mettre à jour les données sur un serveur lié avec un déclencheur, mais en raison de problèmes de pare-feu, nous ne pouvons pas créer de transaction distribuée entre les deux serveurs.

Était-ce utile?

La solution

Ce que vous souhaitez probablement, c'est une combinaison d'une file d'attente contenant les mises à jour du serveur lié et d'un processus qui lit les données de la file d'attente et met à jour le serveur distant.Le déclencheur insérera ensuite un message dans la file d'attente dans le cadre de la transaction normale.Ces données seront lues par un processus distinct et utilisées pour mettre à jour le serveur distant.La logique sera nécessaire dans le processus pour gérer les erreurs (et éventuellement les tentatives).

La file d'attente peut être implémentée avec une ou plusieurs tables.

Autres conseils

Je sais que ce n'est pas utile, donc je serai probablement critiqué pour cela, mais en réalité, la solution est de résoudre le problème du pare-feu.

Je pense que si vous utilisez des serveurs distants (non liés) (qui ne sont pas l'option préférée de nos jours), vous pouvez utiliser SET REMOTE_PROC_TRANSACTIONS OFF pour empêcher l'utilisation de DTC pour les transactions à distance, ce qui pourrait faire la bonne chose ici.Mais cela ne vous aide probablement pas de toute façon avec un serveur lié.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top