J'ai une solution BizTalk qui appelle une procédure stockée qui interrogera et mettra à jour la table. Apparemment, je rencontre cette erreur chaque fois que je teste ma solution dans un serveur à charge équilibrée.Le gestionnaire de transactions MSDTC n'a pas pu pousser la transaction en utilisant AmbientTransaction
L'adaptateur n'a pas réussi à transmettre un message va envoyer le port SQLAdapter_Sendport » avec l'URL « MSSQL:.. // serveur // StoredProc » Il sera retransmis après l'intervalle de nouvelle tentative spécifié pour ce port d'envoi
Détails: System.Transactions.TransactionManagerCommunicationException:. la communication avec le gestionnaire de transactions sous-jacente a échoué
System.Runtime.InteropServices.COMException: le gestionnaire de transactions MSDTC n'a pas pu pousser la transaction au gestionnaire de transactions de destination en raison de problèmes de communication . Les causes possibles sont: un pare-feu est présent et il n'y a pas d'exception pour le processus MSDTC, les deux machines ne peuvent pas se trouver par leurs noms NetBIOS ou le support des transactions réseau n'est pas activé pour l'un des deux gestionnaires de transactions.
Exception de HRESULT: 0x8004D02A)
à System.Transactions.Oletx.ITransactionShim.Export (UInt32 whereaboutsSize, byte [] localisation, Int32 & cookieIndex, UInt32 & cookieSize, CoTaskMemHandle & cookieBuffer)
à System.Transactions. TransactionInterop.GetExportCookie (transaction de transaction, Byte []) sort
--- Fin de la trace de la pile d'exception interne ---
J'ai lu quelques articles que je définir les propriétés DTC comme bel ow Ces paramètres sont déjà définis dans les serveurs BizTalk et SQL.
De plus, le DTC doit être ajouté dans le pare-feu Windows.
Et enfin si le useAmbientTransaction dans les propriétés Envoyer Port est définie sur True je continue de rencontrer cette erreur ci-dessus.
Mais si je mets le useAmbientTransaction False le message suivant est dans SQL.
J'ai lu dans un article que Microsoft ne recommande pas de définir useAmbientTransaction sur False, surtout si Update et Delete impliquent dans la procédure stockée. Mais ma solution utilise la suppression et la mise à jour dans la procédure stockée, c'est pourquoi j'ai besoin de mettre la propriété useAmbientTransaction à True. Mais si je fais cela je continue à rencontrer l'erreur "gestionnaire de transaction MSDTC n'a pas pu pousser la transaction à la destination ..."
S'il vous plaît suggérer une solution possible pour cela.
Est-ce la base de données que vous connectez à un configuré dans le cadre d'un toujours sur le groupe de disponibilité? P.S. cela aide si vous étiquetez vos questions avec biztalk si elles sont des questions liées à BizTalk. – Dijkgraaf