none
transacciones distrubuidas con servidores vinculados RRS feed

  • Pregunta

  • Buenas, tengo 2 servidores vinculados, uno con la version express 2008 y otro con la standar.

    Cuando ejecuto una sentencia dentro de una transacción:

    SET REMOTE_PROC_TRANSACTIONS ON
    set xact_abort on
    BEGIN DISTRIBUTED TRANSACTION

    select * from [sevidorvinculado]. [base]. [esquema]. [tabla]

    rollback TRANSACTION

    En la standar va perfectamete, en la express me devuelve el error:

    El proveedor OLE DB "SQLNCLI10" del servidor vinculado "sp" devolvió el mensaje "No hay ninguna transacción activa.".
    Mens. 7391, Nivel 16, Estado 2, Línea 8


    Tengo Iniciado y configurado el Coordinador de transacciones distribuidas (DTC o MSDTC) en todos los servidores, abierto los puertos, seteado el rpc y el remote trans.

    Además en la express no aparece el coordinador de transacciones en el management.

    ¿Como puedo solucionar esto?


    Gracias

    jueves, 17 de junio de 2010 10:15

Respuestas

Todas las respuestas

  • Hola.

    Comprueba que funciona el MSDTC con la herramienta DTCTester:

    http://support.microsoft.com/kb/293799/es

    Cuando te funcione en ambas direcciones, si continua fallándote, nos dices.


    Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)
    jueves, 17 de junio de 2010 11:05
    Moderador
  • Hola.

    ¿Pudiste solucionarlo?


    Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)
    domingo, 20 de junio de 2010 20:31
    Moderador
  • Buenas, pase la prueba con el dtctester, y con las posibles causas de error que me devolvio, me enruto hacia la solución.

    No tenía configurado las opciones win/dns

     

    Gracias.

    martes, 22 de junio de 2010 8:28
  • Buenas, de nuevo, se vuelve a reproducir el problema anterior con otro servidor vinculado, con la versión express y configurado como el que funciona, esta vez la consulta no produce error, pero cuando intento realizar una inserción, me devuelve el susodicho mensaje.

    He repasado todas las posibles causas del dtctester y nada.

    Por cierto, si lanzo el script sin comienzo de transacción, va perfectamente.

    ¿alguna idea?

     

    gracias

    viernes, 9 de julio de 2010 10:13
  • Hola.

    Un poco extraño, ya que la transacción existe igualmente, aunque sea implícita. ¿Puedes pasarnos todo el código que ejecutar?

    Como te dije la otra vez, debes lograr que funcione el dtctester en las dos direcciones.


    Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)
    viernes, 9 de julio de 2010 17:11
    Moderador
  • Buenas el código es bastante simple:

    ET REMOTE_PROC_TRANSACTIONS ON
    set xact_abort on
    BEGIN  TRANSACTION;

    --BEGIN DISTRIBUTED TRANSACTION
    select * from [servinculado].[base].[esquema].[tabla]
    iNSERT INTO  [servinculado].[base].[esquema].[tabla]([campo1],[campo2])
    values (1,'pru')
    rollback   TRANSACTION

     

    un saludo

    lunes, 12 de julio de 2010 9:04