2012-07-23 32 views
5

Tengo un problema con un trabajo de SSIS que creé recientemente y que se está rompiendo con un error extraño.Error extraño de SSIS (Código de salida del proceso 255)

antecedente

Este es un paquete SSIS (dtsx) que está siendo ejecutado con un trabajo de SQL (SQL Server 2008, puesto de trabajo creado con SSMS) utilizando el tipo de SQL Server Integration Services paquete como lo haría esperar. El trabajo funciona bien en nuestro entorno de desarrollo, pero no en nuestro entorno de prueba. El paquete usa un archivo de configuración (.dtsConfig) para mantener las cadenas de conexión para los diferentes entornos. Lo que el paquete realmente está haciendo es bastante simple; trunca algunas tablas de etapas y luego llena datos extraídos de una base de datos Oracle utilizando 8 tareas de flujo de datos en un contenedor de secuencia, con cada tarea dividida en Fuente (Oracle) -> Conversión de datos (para cadenas unicode) -> Destino (Servidor SQL). Debido a la conexión de Oracle que debe realizarse, el paquete contiene el usuario/pase para esa conexión y, como tal, tiene un nivel de protección de 'EncryptSensitiveWithPassword' para mantener eso. El servidor en el que se está ejecutando este trabajo ejecuta Windows Server 2008 R2 SP1. Creo que es en cuanto a información de antecedentes, pero si me perdí algo, házmelo saber.

el error real

Este es el único mensaje útil en el historial de trabajos del trabajo rota:

El paso no generó ninguna salida. El valor de retorno era desconocido. El código de salida del proceso fue 255. El paso falló.

Como puede ver, no es muy útil. El verdadero truco es que cuando ejecuto este trabajo manualmente usando DTEXEC en el servidor, funciona bien. Esto me lleva a creer que es puede ser un problema de permisos con el sqlagentadmin o algo así, pero todo lo que veo parece estar bien. Comprobé qué estaba pasando con procexplorer y estaba ejecutando el comando DTEXEC correcto. El visor de sucesos de la aplicación hace estallar para arriba con esto, sin embargo (por lo que tal vez es un problema de controlador de Oracle):

Faulting application name: DTExec.exe, version: 2007.100.5500.0, time stamp: 0x4e7b1ed6 
Faulting module name: OraClient11.Dll, version: 11.2.0.1, time stamp: 0x4bb1dcae 
Exception code: 0xc0000005 
Fault offset: 0x0000000000057106 
Faulting process id: 0x2d94 
Faulting application start time: 0x01cd66b0d360164d 
Faulting application path: C:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTExec.exe 
Faulting module path: c:\app\product\11.2.0\client_1\bin\OraClient11.Dll 
Report Id: 118a2173-d2a4-11e1-b1ec-001517955142 

he mirado alrededor de la Internet durante horas y he probado algunas cosas. Cambié la propiedad de Validación de retraso a 'Verdadero' en todas las tareas de flujo de datos. Intenté configurar el trabajo con la GUI de SSIS integrada, y con la opción del sistema operativo para ejecutar el dtexec, ambos fallaron.

¿Alguna sugerencia? Perdón por el muro de texto, pero solo quería asegurarme de haber cubierto todo.

Gracias!

+1

Parece que el controlador de Oracle que está ejecutando no funciona correctamente. La segunda última línea de su salida de error indica que el error está dentro de OraClient11.Dll. ¿Puedes intentar ejecutar esto en otra máquina? – rvphx

+0

Supongo que no tiene el registro del paquete encendido? – billinkc

+0

La cuenta que ejecuta el paquete en prueba, ¿es igual a la cuenta del Agente SQL o tiene un proxy? ¿Está configurado de la misma manera, como puedes ver, en tu entorno de desarrollo? – billinkc

Respuesta

0

¿Su servidor es un servidor de 64 bits? ¿Qué pasa con el servidor de Oracle? Tuvimos problemas de problemas muy similares cuando usamos SSIS para conectarnos a un servidor de Oracle. Tuvimos que instalar las herramientas de cliente de 64 bits y de 32 bits en nuestro servidor de 64 bits.

Además, hay un indicador que quizás deba establecer en el trabajo del Agente SQL para indicarle que no use 64 bits. Mira las propiedades para el Paso. Vaya a la pestaña Configuración, luego haga clic en la pestaña Avanzado (puede ser un poco diferente en SQL 2008) y marque "Tiempo de ejecución de 32 bits" y luego inténtelo de nuevo. Esta podría ser la razón por la que funciona cuando se depura pero no funciona como un trabajo.

1

Recibí el siguiente error: 'El paso no generó ninguna salida. El valor de retorno era desconocido. El código de salida del proceso fue 255. El paso falló.' Para resolver mi problema, verifiqué los privilegios para leer los datos fuente. No tenía los privilegios adecuados. Obtuve los privilegios correctos y reinicié mi trabajo para resolver el problema. Podría sugerir que la API entre SSIS como la tarea de ejecución y, en mi caso, el proveedor de fuente de datos DB2 debería asignar fallas con mejor información: -) Problema resuelto al obtener una lectura privilegiada de los datos fuente.

Cuestiones relacionadas