Lotes de mensajes transaccionales
Algunos adaptadores deben coordinar una transacción externa con una transacción de BizTalk Server interna. Por ejemplo, el adaptador de SQL proporcionado con BizTalk Server debe coordinar una transacción de SQL Server con una transacción de BizTalk Server. Para ello, el adaptador necesita acceso al objeto de transacción BizTalk Server. Se crea explícitamente un objeto de transacción y se asocia al lote antes de enviarlo a BizTalk Server. Un lote que tiene asociado un objeto de transacción recibe el nombre de lote transaccional. Al proporcionar su propio objeto de transacción de Coordinador de transacciones distribuidas de Microsoft (MSDTC), puede lograr la entrega de datos "garantizada, una y una sola vez", dentro y fuera de BizTalk Server.
Los adaptadores de bases de datos transaccionales, como el adaptador de SQL, tienen la posibilidad de interbloqueos en la base de datos externa, debido a que solo se usa una transacción para el lote. Este es el motivo por el que el tamaño del lote del adaptador de SQL se codifica en uno.
Si el adaptador debe dar de alta los administradores de recursos adicionales, por ejemplo, otra base de datos o MSMQ, en el ámbito de dicha transacción, es necesario crear y pasar al motor de mensajería, así como explicitar una transacción externa. La creación de una transacción externa y su asociación a un lote recibe el nombre de lote transaccional. Un adaptador transaccional es un adaptador que hace uso de los lotes transaccionales mediante la creación expresa de una transacción externa del Coordinador de transacciones distribuidas de Microsoft (MSDTC).
Una de las razones por las que un adaptador proporciona BizTalk Server con una transacción es asegurarse de que BizTalk Server o el sistema externo tenga un registro de los datos. Este registro garantiza que el mensaje se entrega una única vez.
Nota
Para obtener más información sobre MSDTC, vea Coordinador de transacciones distribuidas.
El adaptador de archivo es un ejemplo de un adaptador que no necesita obtener acceso a la transacción, porque las operaciones del archivo externo que administra no son transaccionales. En este caso, el adaptador no proporciona un objeto de transacción para BizTalk Server. El adaptador de SQL, por otro lado, interactúa con una base de datos SQL y puede tener operaciones adicionales fuera de sus BizTalk Server interacciones de mensajes. En este caso, una transacción MSDTC externa puede tener sentido para que el adaptador pase a BizTalk Server.