SQL Server - JOB EN ERROR

 
Vista:

JOB EN ERROR

Publicado por cesar augusto cuncanchun (6 intervenciones) el 19/04/2007 12:07:50
hola:

como siempre les escribo para que porfavor me colaboren, pues todas las consultas que les hago me han funcionado perfectamente.

tengo el siguiente codigo, el cual funciona perfecto cuando lo corro en el query analizer, pero este mismo codigo lo pongo en un job y el job falla cuando la consulta arroja registros. anteriormente yo tenia el job que me cambiaba de estado y funcionaba bien ahora cambie el codigo de dicho job para que ademas de cambiar de estado a los procesos me lleve una estadistica insertando en una tabla de que es lo que ha cambiado pero no funciona.

este el el codigo:

DECLARE @USUARIO CHAR(30)
SET @USUARIO='AJPEOPLE'
DECLARE @INSTANCIA AS INT
-- DECLARAMOS UN CURSOR LLAMADO "CURSORCC".
-- EL SELECT DEBE CONTENER SÓLO LOS CAMPOS A UTILIZAR.
DECLARE CURSORCC CURSOR FOR
SELECT PRCSINSTANCE
FROM PSPRCSRQST
WHERE DISTSTATUS='1'--DETERMINA SI ESTA EN ESTADO PROGRAMADO O N/A
AND RUNSTATUS IN('9','3') --DETERMINA SI ESTA EN CORRECTO O ERROR
AND OPRID=@USUARIO --USUARIO AJPEOPLE
AND (PRCSINSTANCE=JOBINSTANCE OR JOBINSTANCE=0)
AND GETDATE()-1<RQSTDTTM --LA FECHA DE PETICION DEBE SER DE UN DIA ATRAS HACIA ADELANTE(ESTO SE PUEDE CAMBIAR, SIN PROBLEMA)
AND GETDATE()-0.0069>ENDDTTM --VALIDO QUE LLEVE MAS DE 10 MINUTOS
OPEN CURSORCC
-- AVANZAMOS UNA FILA Y CARGAMOS EN LAS VARIABLES LOS VALORES ENCONTRADOS EN LA FILA ACTUAL
FETCH NEXT FROM CURSORCC
INTO @INSTANCIA
WHILE @@FETCH_STATUS = 0
BEGIN --AQUI REALIZA EL CAMBIO DE ESTADO QUE HACIAMOS MANUALMENTE
USE pubs
INSERT procesos
SELECT A.PRCSINSTANCE,A.PRCSNAME,A.ENDDTTM,GETDATE(),B.XLATSHORTNAME,'n/a'
FROM AJBOGDBPS1.FDMTEST8.dbo.PSPRCSRQST A,AJBOGDBPS1.FDMTEST8.dbo.PSXLATITEM B
WHERE A.RUNSTATUS=B.FIELDVALUE
AND PRCSINSTANCE=@INSTANCIA
AND (B.XLATSHORTNAME='Success'OR B.XLATSHORTNAME='Error')
USE FDMTEST8
UPDATE PS_CDM_LIST SET DISTSTATUS = 1 WHERE PRCSINSTANCE = @INSTANCIA
UPDATE PSPRCSRQST SET RUNSTATUS = 5 , DISTSTATUS =1 WHERE PRCSINSTANCE = @INSTANCIA
UPDATE PSPRCSQUE SET RUNSTATUS = 5 WHERE PRCSINSTANCE =@INSTANCIA
-- AVANZAMOS OTRO REGISTRO
FETCH NEXT FROM CURSORCC
INTO @INSTANCIA
END
-- CERRAMOS EL CURSOR
CLOSE CURSORCC
DEALLOCATE CURSORCC
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:JOB EN ERROR

Publicado por Isaías (3308 intervenciones) el 20/04/2007 01:42:59
Sin aun analizar tu codigo, ¿El USUARIO que ejecuta el script en tu analizador de consultas, tiene los mismos permisos que el usuario que ARRANCA tu servicio de AGENT?

Me suena a problemas de permisos.

Voy a analizar tu codigo..............
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:JOB EN ERROR

Publicado por cesar augusto cuncanchun (6 intervenciones) el 20/04/2007 05:46:38
hola:
Gracias por tu respuesta:

En mi equipo con el query analizer corre bien, pero el problema es cuando ingreso al servidor principal, y voy al enterprise manager, utilizo el usuario sa y creo el job. hay es cuando queda en error. revisare permisos.

ojala esta informacion te sirva

MIRA ESTE CODIGO:

este es el mismo pero sin la insercion y esta en un job y corre perfecto. lo unico que cambia al otro es que este no inserta en la tabla de la bd pubs. esta con el mismo usuario sa

DECLARE @USUARIO CHAR(30)
SET @USUARIO='AJPEOPLE'
DECLARE @INSTANCIA AS INT
-- DECLARAMOS UN CURSOR LLAMADO "CURSORCC".
-- EL SELECT DEBE CONTENER SÓLO LOS CAMPOS A UTILIZAR.
DECLARE CURSORCC CURSOR FOR
SELECT PRCSINSTANCE
FROM PSPRCSRQST
WHERE DISTSTATUS='1'--DETERMINA SI ESTA EN ESTADO PROGRAMADO O N/A
AND RUNSTATUS IN('9','3') --DETERMINA SI ESTA EN CORRECTO O ERROR
AND OPRID=@USUARIO --USUARIO AJPEOPLE
AND (PRCSINSTANCE=JOBINSTANCE OR JOBINSTANCE=0)
AND GETDATE()-1<RQSTDTTM --LA FECHA DE PETICION DEBE SER DE UN DIA ATRAS HACIA ADELANTE(ESTO SE PUEDE CAMBIAR, SIN PROBLEMA)
AND GETDATE()-0.0069>ENDDTTM --VALIDO QUE LLEVE MAS DE 10 MINUTOS
OPEN CURSORCC
-- AVANZAMOS UNA FILA Y CARGAMOS EN LAS VARIABLES LOS VALORES ENCONTRADOS EN LA FILA ACTUAL
FETCH NEXT FROM CURSORCC
INTO @INSTANCIA
WHILE @@FETCH_STATUS = 0
BEGIN --AQUI REALIZA EL CAMBIO DE ESTADO QUE HACIAMOS MANUALMENTE
UPDATE PS_CDM_LIST SET DISTSTATUS = 1 WHERE PRCSINSTANCE = @INSTANCIA
UPDATE PSPRCSRQST SET RUNSTATUS = 5 , DISTSTATUS =1 WHERE PRCSINSTANCE = @INSTANCIA
UPDATE PSPRCSQUE SET RUNSTATUS = 5 WHERE PRCSINSTANCE =@INSTANCIA
-- AVANZAMOS OTRO REGISTRO
FETCH NEXT FROM CURSORCC
INTO @INSTANCIA
END
-- CERRAMOS EL CURSOR
CLOSE CURSORCC
DEALLOCATE CURSORCC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:JOB EN ERROR

Publicado por Isaías (3308 intervenciones) el 20/04/2007 20:23:02
(Debi haber preguntado esto antes)

¿Cual es el error que te aparece en el HISTORICO de ejecucion de tus job's?

¿Lo puedes postear?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar