Sql server agent

26/11/2003 - 17:57 por Miguel Tubía | Informe spam
Hola (de nuevo :))
tengo un sp que crea un trabajo (sobre el que hablado antes...). Esta vez
quiero saber si el sql server agent está iniciado o no. Eso lo gestiono al
principio del sp y si no está iniciado devuelvo un código de error (si no lo
está no se puede crear el trabajo, o al menos no se puede hacer un
sp_add_jobserver, pues me ha dado error ya.
Yo lo controlaba con el sp msdb.dbo.sp_is_sqlagent_starting, pero o lo
manejo o no sirve para eso. ¿Alguien sabe como lo puedo hacer? ¿O solo me
queda como consuelo esperar q pete y arreglarlo? Eso es lo q hago ahora
(recupero el retorno de sp_add_jobserver y si falla actúo en consecuencia).
Muchas gracias a todos. Me voy a casita ahora y desde ahí leeré las
respuestas si las hay (en verdad debemos ser de los pocos que se llevan el
trabajo a casa y, a veces, disfrutan con ello cuando aprenden cosas
nuevas... sigh...)
Un saludo

Preguntas similare

Leer las respuestas

#1 Javier Loria
26/11/2003 - 18:33 | Informe spam
Hola Miguel:
Cual es tu codigo para agregar el JOB, ya que es SI es posible agregar
Jobs con el Agente apagado?, acabo de hacerlo :)
En todo caso creo que podrias correr sp_get_sqlagent_properties para
obtener el estado del servidor. Este procedimiento NO esta documentado y por
ende es muy probable que en la proxima version no funcione o no funcione
igual.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.


Miguel Tubía escribio:
Mostrar la cita
#2 ulises
26/11/2003 - 19:16 | Informe spam
Si se puede agregar un job cuando el SQL Server Agent este
apagado y lo puedes hacer con sp_add_job y sp_add_jobstep
o graficamente (lo necesitas activo solo para ejecutarlo o
para que se realice la ejecución en la fecha en que lo has
programado).

Saludos,
Ulises
PD. El sp_add_jobserver lo que hace es asignar un job ya
existente a un servidor.


Mostrar la cita
antes...). Esta vez
Mostrar la cita
Eso lo gestiono al
Mostrar la cita
de error (si no lo
Mostrar la cita
hacer un
Mostrar la cita
msdb.dbo.sp_is_sqlagent_starting, pero o lo
Mostrar la cita
hacer? ¿O solo me
Mostrar la cita
lo q hago ahora
Mostrar la cita
en consecuencia).
Mostrar la cita
leeré las
Mostrar la cita
que se llevan el
Mostrar la cita
aprenden cosas
Mostrar la cita
#3 Miguel Tubia
26/11/2003 - 19:58 | Informe spam
Hola,
gracias por responder. La verdad q el trabajo sí lo crea, El error lo da al
hacer el .sp_add_jobserver, pero si miro la tabla sysobjs si que esta
creado.
El código es muy largo, pero más o menos hago el sp_add_job y cojo el id del
job. Luego creo los pasos con sp_add_jobstep. En @on_success_step_id y
@on_fail_step_id les doy un paso que creo luego. Me da la advertencia que
ese paso no está creado, pero lo creo más abajo ¿está bien? El trabajo lo
indico mediante el id que he sacado antes (podría tb por nombre, pero
bueno...)
Luego creo la programacion, q aqui creo q tengo algo mal: quiero q lo
ejecute un dia a una hora, y eso lo tengo en un datetime q paso como
parámetro al sp q crea el job. Así pues hallo los @active_start_date,
@active_end_date, @active_start_time, @active_end_time en el formato q dice
(aaaammdd - hhmmss). Vale, pero si quiero q solo se ejecute una vez a una
hora en un dia, ¿q valores tengo q darles? tengo esto puesto así:
@freq_type=1,
@freq_interval =1,
@freq_subday_type=0x1
pero a @active_start_date, @active_end_date, @active_start_time,
@active_end_time no sé como tratarlos. Si quiero q se ejecute solo un día,
pongo la misma fecha en @active_start_date y en @active_end_date, y si
quiero una hora, pongo esa en @active_start_time, pero en @active_end_time
¿q debo poner? ¿Q significa exactamente?
Bueno, una vez creo la programación, hago el sp_add_jobserver y ahí me dice
q no lo puedo hacer pq el sql server agent no esta iniciado. ¿Cómo lo puedo
iniciar? Pq a mi me interesa iniciarlo si tengo un trabajo o una alerte o
algo... Lo ideal sería tenerlo siempre iniciado, pero estas cosas ya se
sabe, un día se van al garete y bueno. Yo quería saber si está iniciado
para, si no lo está lo incio por código y si da un error, trato el trabajo
de otro forma por programa externo ya.
Bueno, espero haber explicado un poco esto. Ha sido largo pero si pongo el
resto del código bueno
Espero me puedan echar una mano
Gracias de nuevo, un saludo
#4 Miguel Tubia
26/11/2003 - 20:35 | Informe spam
Hola,
gracias por responder.
una preguntita. El sp_add_jobserver como dices asigna un trabajo ya
existente a un servidor. ¿Ese trabajo donde esta? ¿En otro servidor y lo
'copia'?
Es decir, sin esa instrucción, al crear un trabajo ya me lo 'añade' al
local? y con esta lo puedo añadir a otro servidor?
Gracias por la ayuda
Un saludo
#5 Javier Loria
26/11/2003 - 23:12 | Informe spam
Hola Miguel:
No se si te sirve esta "tecnica", para revisar los comandos para agregar
el JOB.
a) Prende el Profiler e Inicia una Traza "Default".
b) Con el Enterprise Manager Agrega tu trabajo "manualmente".
c) Luego tomas la traza y en el Query Analizer ajustas las cosas.
Para esto asumo que tu servidor es de desarrollo.
En cuanto al servidor no creo que haya comando de SQL que te permitan
prender el servicio.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Miguel Tubia escribio:
Mostrar la cita
Ads by Google
Search Busqueda sugerida