Hola
Tenemos el siguiente problema:
Ambiente:
Servidor A con ISA Server y SQL Server 2000
Servidor B SQL Server 2000
En el servidor A tenemos configurada la tabla WebProxyLog con un trigger el
cual por cada insert del isa server en la misma inserta algunos campos en
otra tabla del Servidor B
El Servidor B esta linkeado en las "Link Server" del Servidor A.
Los MSDTC estan levantados en los 2 servidores pero al ejecutarce el trigger
da el siguiente error:
Server: Msg 7391, Level 16, State 1, Procedure Trg_Insert, Line 7
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::JoinTransaction returned 0x8004d00a].
Probamos correr el insert que esta dentro del trigger (sobre el query
analyzer) y funciono bien.
Probamos en el trigger poner el comando "SET XACT_ABORT ON" y su respectivo
"OFF" sin resultados
Probamos con otro server (Servidor C) que no tiene instalado el ISA Server y
funciona bien.
Bajamos una herramienta de microsoft para chequear el MSDTC (How To Use
DTCTester Tool) segun la
Nota:
http://support.microsoft.com/defaul...-us;293799
Resultado de la prueba:
tablename= #dtc13748
Creating Temp Table for Testing: #dtc13748
Warning: No Columns in Result Set From Executing: 'create table #dtc13748
(ival int)'
Initializing DTC
Beginning DTC Transaction
Enlisting Connection in Transaction
Error:
SQLSTATE%S12,Native error=-2147168242,msg='[Microsoft][ODBC SQL Server
Driver]Distributed transaction error'
Error:
SQLSTATE$000,Native error=0,msg=[Microsoft][ODBC SQL Server Driver]Invalid
cursor state
Typical Errors in DTC Output When
a. Firewall Has Ports Closed
-OR-
b. Bad WINS/DNS entries
-OR-
c. Misconfigured network
-OR-
d. Misconfigured SQL Server machine that has multiple netcards.
Aborting DTC Transaction
Releasing DTC Interface Pointers
Successfully Released pTransaction Pointer.
En el Servidor C termino bien con el siguiente detalle:
tablename= #dtc17709
Creating Temp Table for Testing: #dtc17709
Warning: No Columns in Result Set From Executing: 'create table #dtc17709
(ival int)'
Initializing DTC
Beginning DTC Transaction
Enlisting Connection in Transaction
Executing SQL Statement in DTC Transaction
Inserting into Temp...insert into #dtc17709 values (1)
Warning: No Columns in Result Set From Executing: 'insert into #dtc17709
values (1) '
Verifying Insert into Temp...select * from #dtc17709 (should be 1): 1
Press enter to commit transaction.
Commiting DTC Transaction
Releasing DTC Interface Pointers
Successfully Released pTransaction Pointer.
Disconnecting from Database and Cleaning up Handles
Alguien sabe si el ISA Server Bloquea algo?
Si hay que abrir algun puerto? Cual es el puerto?
Si podriamos haber omitido algo en el server A? (dado que del C al B
funciona ok)
Alguna otra idea?
Ante todo muchas gracias!!!
Fernando Mosquera / Luis Tarzia
Leer las respuestas