db2 transactionscope drivers

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:

  1. ejecutar dcomcnfg ;
  2. Servicios de componentes> Computadoras> Mi PC> Coordinador de transacciones distribuidas
  3. 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.

Fuente: http://blogs.msdn.com/b/bill/archive/2006/12/12/using-msdtc-between-vista-clients-and-windows-2000-servers.aspx