Hemos preparado un Job con varios pasos pero cuando lo ejecutamos, el Job se queda bloqueado, pero si ejecutamos los pasos uno a uno manualmente, todos funcionan correctamente. ¿Alguna idea de qué puede fallar cuando se ejecutan los pasos en el job?
1 respuesta
Respuesta
0
0
Anónimo
La verdad es que es muy difícil de decir con los datos que me das. ¿Te da error de trabajo o se queda simplemente colgado? ¿Entra en un bucle? ¿Has ejecutado el trabajo desde el Analizador de consultas?
Este Job consta de 5 pasos. Los 4 primeros se ejecutan correctamente (hay un DTS, un procedimiento almacenado, creación y destrucción de tablas) pero el último (un DTS que exporta primero una consulta hacia un archivo de EXCEL y después envía dicho archivo por e-mail) sólo funciona cuando lo ejecutamos directamente. Cuando se ejecuta el Job que continene dichos pasos, simplemente da un error de job cuando llega al paso 5 (lo da unos 2 segundos después de haber comenzado a ejecutar este paso) y detiene su ejecución. Este DTS que genera el error consta unicamente de un modulo de VBScript que a su vez llama a otro DTS que es el que realiza las tareas de exportación a excel y envío por email. En el no hay ningún bucle infinito. En tu respuesta anterior indicas que probemos ejecutando el job desde el analizador de consultas, ¿pero cómo lo hago? Gracias Lidia [email protected]
Lo que yo hago cuando tengo que depurar un trabajo es lo siguiente: 1.- Ejecuto paso por paso en el analizador de consultas: entra los comando que tienes programados en el trabajo directamente en el analizador de consultas con el mismo contexto de seguridad en el que se ejecutara el trabajo Es decir si tengo un trabajo que se ejecuta con el usuario user1 y que tiene los pasos paso1, paso2, paso3 y paso4, voy al analizador, me logueo como user1 y pongo exec paso1, veo el resultado, exec paso2, etc en el paso que este mal debería dar un error. 2.- Si el primer punto va bien pero se mantiene el error es probable que sea porque los resultados de un paso son los parámetros de entrada del siguiente. En este caso lo que hago es montar un procedimiento almacenado que ejecute todos los paso como si fuese un trabajo y lo ejecuto en el analizador Si todo te va bien en el analizador pero no en el trabajo existen un 90% de posibilidades de que sea un problema de permisos, es decir que el contexto de seguridad que tiene el usuario que ejecuta el job es inadecuado
Hola jordim, Referente a lo de los permisos, tengo que decirte que no creo que sea la causa por la cual el DTS no funciona en el job, porque todo lo que hago en SQL Server esta asignado al usuario sa (system administrator). Lo de ejecutar el DTS paso a paso desde el analizador de consultas, la verdad es que no se como se hace. He probado con la instrucción cmdExec, pero no funciona. ¿Cómo se hace para ejecutarlo desde allí? gRaCiAs!
¿Has probado a meter los comando DTS en el analizador tal cual? Ahora mismo me pillas de vacaciones y no puedo comprobarlo en el SQL de mi oficina pero diría que puedes hacerlo así. De todos modos en casos tan peliagudos como el que tu planteas yo siempre hago lo mismo: si se resiste me replanteo la solución. Quizás en este caso concreto podrías solucionar tu problema creando un script ASP o WSH y depurarlo o algo por el estilo El lema es claro: si la entrada principal esta muy custodiada busca una entrada lateral