We are trying to stablish a distributed transaction between Server A on my LAN and server B on my DMZ.
SERVER A (in LAN): WIndows 2003 Std SP2, 2 SQL Server Instances: 1 SQLServer 2000 Standard, 2 SQL Server 2005 Express. It contanis 2 linkservers. Link1: Points to Instance2005 on serverA, Link2: points to instance2005 on SERVER B.
SERVER B (in DMZ): Windows 2003 Std SP2, 1 Instance SQL Server 2005 Express.
In SERVER A:The instence 2000 executes a stored prodecure that contains SQL Sentences (INSERT, SELECT AND DELETE) wich uses the link server mentioned above.
**************************
**********
**********
**********
**********
**********
*****
SET XACT_ABORT ON
BEGIN DISTRIBUTED TRAN
SET ANSI_NULLS ON
SET ANSI_WARNINGS ON
DELETE [link2].basededatosDestino
.dbo.tabla
Destino
INSERT INTO [link2].base de datosdestino.dbo.tabladest
ino
SELECT * FROM [link1].basededatosorigen.
dbo.tablao
rigen
**************************
**********
**********
**********
**********
*******
This works fine if both SERVER A and SERVER B are on my LAN, once I transfer SERVER B to my DMZ i get the following error:
**************************
**********
**********
**********
**********
**********
**********
**********
**********
**********
*********
The operation could not be performed because the OLE DB provider 'SQLOLEDB' was unable to begin a distributed transaction.
[OLE/DB provider returned message: New transaction cannot enlist in the specified transaction coordinator. ]
OLE DB error trace [OLE/DB Provider 'SQLOLEDB' ITransactionJoin::JoinTran
saction returned 0x8004d00a].
**************************
**********
**********
**********
**********
**********
**********
**********
**********
**********
**********
My DMZ is behind a checkpoint Firewall, the ip segment on my LAN is Different to the one on my DMZ the Firewall does the routing.
Start Free Trial