2009-03-23 15 views
5

Nuestros paquetes están fallando al azar con el mensaje de error siguiente:Fallo intermitente para alistar paquete SSIS en transacción DTC

SSIS Código de error DTS_E_OLEDBERROR. Se ha producido un error OLE DB. Código de error: 0x8004D00A. La información del objeto de error COM está disponible. Fuente: "[Algunos nombre de paquete]" código de error: 0x8004d00a Descripción: "La SSIS tiempo de ejecución no ha podido contar con la conexión OLE DB en una transacción distribuida con el error 0x8004d00a 'No se puede dar de alta en la transacción'

.

Esto no sucede todo el tiempo, y volver a ejecutar el paquete a menudo tiene éxito, por lo que no creo que sea un problema de configuración de red o DTC. Esto sucede tanto si ejecutamos el paquete desde Studio como si no. Trabajo del agente SQL. En este último caso, el paquete se está ejecutando en la misma instancia de SQL Server a la que intenta conectarse.

Podemos ver en los registros que la transacción se inicia en el p correcto un poco - pero un par de segundos después, obtenemos el fracaso.

¡Cualquier sugerencia recibida con gratitud en este momento!

Detalles del servidor SQL: 64-bit Enterprise Edition (v9.0.3233) ejecutándose en Server 2003 64-bit Enterprise (3790). Los servidores ejecutan E5345 Xeons, con 6 GB de RAM.

Respuesta

4

Al final encontramos la respuesta: había dos tareas independientes en el flujo de control que establecían conexiones con la misma base de datos. Evidentemente, hay alguna condición de carrera en algún lugar que lo hace fallar. Agregar una restricción de precedencia para forzar las tareas a ser ejecutadas en serie hizo que el problema desapareciera.

+1

Todo en mi paquete está en serie y NO es paralelo/independiente. Todavía estoy recibiendo este error. – Steam

Cuestiones relacionadas