TransactionScope no funcionará con el proveedor de DB2
drivers (2)
Me las arreglé para conseguir que el viejo y quejumbroso driver IBM DB2 v7 ODBC funcione en un TransactionScope. Requería:
- Transacciones XA habilitadas en propiedades MSDTC
- Un valor ingresado bajo la clave de registro HKLM / SOFTWARE / Microsoft / MSDTC / XADLL con el nombre ''DB2CLI.DLL'' y el valor ''C: / PROGRA ~ 1 / IBM / SQLLIB / BIN / DB2CLI.DLL'' (ruta al dll en formato 8.3 - v9 usa DB2APP.DLL)
- Un reinicio
- No se cierra la conexión antes de que se elimine TransactionScope. Parece obvio en retrospectiva. :)
No estoy seguro de si esto es relevante para su situación particular. La documentación de IBM muestra el código de razón 16, subcódigo 2 como "El MSDTC no puede registrar la conexión de DB2". Parece que hay algún problema con MSDTC para encontrar el dll de DB2; ¿tal vez verifique la clave de registro a la que se hace referencia anteriormente?
He intentado usar TransactionScope con una base de datos DB2 (utilizando el proveedor DB2 .Net v 9.0.0.2 y c # 2.0) que DEBERÍA ser compatible con IBM.
He intentado todos los consejos que pude encontrar en los foros de IBM (como aquí ) en vano.
He habilitado las transacciones XA en mi máquina XP Sp2, probada también desde una máquina Win 2003 Server, pero recibo constantemente el infame error:
ERROR [58005] [IBM][DB2/NT] SQL0998N Error occurred during
transacción o procesamiento heurístico. Código de razón = "16". Subcódigo = "2-80004005". SQLSTATE = 58005
El registro de eventos de Windows dice:
The XA Transaction Manager attempted to load the XA resource
administrador DLL. La llamada a LOADLIBRARY para el administrador de recursos XA DLL falló: DLL = C: / APPS / IBM / DB2v95fp2 / SQLLIB / BIN / DB2APP.DLL File = d: / comxp_sp2 / com / com1x / dtc / dtc / xatm / src / xarmconn .cpp Line = 2467.
Además, otorga al usuario de SERVICIO DE RED todos los derechos sobre la carpeta y dll.
Aquí está el mensaje de inicio de MSDTC
MS DTC comenzó con la siguiente configuración:
Configuración de seguridad (OFF = 0 y ON = 1): Administración de transacciones de red = 0, Clientes de red = 0, Transacciones distribuidas entrantes usando Native MSDTC Protocol = 0, Transacciones distribuidas salientes usando Native MSDTC Protocol = 0, Transaction Internet Protocol (TIP) = 0, XA Transacciones = 1
¡Cualquier ayuda sería muy apreciada!
Gracias, Florin
Resolví este problema activando MS DTC como en la imagen a continuación:
- ejecutar dcomcnfg ;
- Servicios de componentes> Computadoras> Mi PC> Coordinador de transacciones distribuidas
- Seleccione DTC local> Propiedades> Pestaña de seguridad:
Reinicia tu máquina y vuelve a intentarlo. Asegúrese de tener los últimos controladores de IBM. Probé con 10.1 Fixpack 1 e Informix 11.50.