El TecnoBaúl de Kiquenet

Kiquenet boring stories

El maravilloso mundo de las transacciones III: DTC

Posted by kiquenet en 5 enero 2011

La relación entre DTC (MSDTC service. Coordinador de Transacciones Distribuidas) y las transacciones (TransactionScope en C#).

Existen los comandos: sc y netsvc.

Ruta de registro: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC

Comandos para iniciar:

sc config msdtc start= auto
sc start msdtc

Jesús López posted on Foros MSDN

Cuando dentro de un TransactionScope se abre más de una conexión, aunque
sean a la misma base de datos, la transacción se promociona a transacción
distribuida. Las transacciones distribuidas son maneejadas por el MSDTC
(Microsoft Distributed Transaction Coordinator). De forma predeterminada el
acceso de red de MSDTC está deshabilidado.  Si el cliente que ejecuta la
transacción distribuida no está en la misma máquina que SQL Server, entonces
es necesario acceso de red de MSDTC.

Vamos que el mensaje de error te está diciendo exactamente qué es lo que
está pasando y además te está diciendo como arreglarlo. En el servidor SQL,
ejecutas la herramienta administrativa de Servicios de Componentes, todos
los programas -> herramientas administrativas -> servicios de componentes, o
panel de control->herramientas administrativas->servicios de componentes o
C:\WINDOWS\system32\Com\comexp.msc. Expandes Raíz de la Consola->Servicios
de Componentes->Equipos. Haces click con el botón derecho en Mi PC, eliges
propiedades, te vas a la ficha MSDTC, pulsas el botón "Configuración de
Seguridad" y allí habilitas:

1) Acceso a DTC desde la red
a) permitir clientes remotos
b) permitir entrantes
c) permitir salientes

http://support.microsoft.com/kb/166819/en-us?fr=1

C:\>sc \\REMOTE1 config Schedule start= disabled
[SC] ChangeServiceConfig SUCCESS

C:\>netsvc /start \\REMOTE1 "Schedule"
Error code 1058

C:\net helpmsg 1058

The specified service is disabled and cannot be started.
C:\>sc \\REMOTE1 config Schedule start= demand [SC] ChangeServiceConfig SUCCESS

C:\>netsvc /start \\REMOTE1 "Schedule" Service is pending start on \\REMOTE1

C:\>sc \\REMOTE1 qc Schedule [SC] GetServiceConfig SUCCESS

Referencias útiles sobre el tema: DTC y distintos problemas.

http://www.thereforesystems.com/turn-on-msdtc-windows-7/

http://stackoverflow.com/questions/1764165/understanding-msdtc-in-windows

Troubleshooting Problems with MSDTC
http://msdn.microsoft.com/en-us/library/aa561924.aspx

http://stackoverflow.com/questions/1690892/transactionscope-automatically-escalating-to-msdtc-on-some-machines

How to prevent automatic MSDTC promotion
http://softwaredevelopmentsolutions.blogspot.com/2010/08/how-to-prevent-automatic-msdtc.html

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: