Newsgroup: it.comp.lang.visual-basic
Titolo: [SQL Server] Sql Agent

In particolare il post è rivolto ad A. Montanari che con il suo Dba2k ha
un bel pò di esperienza in + rispetto alla media, ma tutte le altre risposte
sono comunque ben accette.
Il dubbio è ... devo utilizzare l'sql agent per eseguire la pulizia di una
tabella ogni tot periodo ... fantastico .. con le sp di sistema creo,
modifico
e cancello il job ...
Il punto è nel dover far partire l'sql agent, qualora non lo sia già, potrei
adottare una shell execute net start sqlagent o usatre la sp di sistema
xp_cmdshell ecc. ecc. che tra l'altro restituisce un bel recordset con
il log di cosa è successo.
Il fattaccio è:
1) come faccio a sapere se tutto è ok, o no ... nel senso il recordset
dice effettivamente cosa è successo, ma lo fa sotto forma di stringa,
quindi o implemento un parser di stringa, ma ho il terrore che
se poi qualcuno alla MS cambia le stringhe mi silura tutto ... o trovo
e qui non ho idea di dove sbattere la coccia ... dei codici di errore
e soprattutto trovo il sistema di farmeli restituire.
2) se faccio partire sqlagent con la sp di sistema, al successivo riavvio
riparte in automatico o lo devo fare ripartire io? Qui ci si potrebbe
pure arrivare con una 10 di reboot macchina, ma sarebbe meglio
una risposta.
3) secondo voi, ammettendo che sql agent riparta in automatico, cosa
è meglio fare, salvare lo stato prima della mia indicazione di partenza,
e all'uscita se sql agent era spento, lo rispengo anche io, oppure ...
lasciarlo acceso (anche se credo che per lasciarlo acceso bisogna
passare qualche altro argomento che gli indichi la persistenza del servizio
- cosa che il comando net start non ha).
-- 
Saluti
Andrea Moro

 ha scritto nel messaggio
news:bjf10q$ibh19$1...@ID-61006.news.uni-berlin.de...
: In particolare il post è rivolto ad A. Montanari che con il suo Dba2k ha
: un bel pò di esperienza in + rispetto alla media, ma tutte le altre
risposte
: sono comunque ben accette.
:
: Il dubbio è ... devo utilizzare l'sql agent per eseguire la pulizia di una
: tabella ogni tot periodo ... fantastico .. con le sp di sistema creo,
: modifico
: e cancello il job ...
: Il punto è nel dover far partire l'sql agent, qualora non lo sia già,
potrei
: adottare una shell execute net start sqlagent o usatre la sp di sistema
: xp_cmdshell ecc. ecc. che tra l'altro restituisce un bel recordset con
: il log di cosa è successo.
:
: Il fattaccio è:
:
: 1) come faccio a sapere se tutto è ok, o no ... nel senso il recordset
: dice effettivamente cosa è successo, ma lo fa sotto forma di stringa,
: quindi o implemento un parser di stringa, ma ho il terrore che
: se poi qualcuno alla MS cambia le stringhe mi silura tutto ...
E tu cambi il parser...(fare e disfare è tutto un lavorare!!!)
:o trovo
: e qui non ho idea di dove sbattere la coccia ... dei codici di errore
: e soprattutto trovo il sistema di farmeli restituire.
: 2) se faccio partire sqlagent con la sp di sistema, al successivo riavvio
: riparte in automatico o lo devo fare ripartire io? Qui ci si potrebbe
: pure arrivare con una 10 di reboot macchina, ma sarebbe meglio
: una risposta.
:
: 3) secondo voi, ammettendo che sql agent riparta in automatico, cosa
: è meglio fare, salvare lo stato prima della mia indicazione di partenza,
: e all'uscita se sql agent era spento, lo rispengo anche io, oppure ...
: lasciarlo acceso (anche se credo che per lasciarlo acceso bisogna
: passare qualche altro argomento che gli indichi la persistenza del
servizio
: - cosa che il comando net start non ha).
SQL Agent è un servizio, decidi tu come regolarne l'esecuzione.
: Saluti
: Andrea Moro
Ciao, Luca.



personalmente sconsiglio la strada xp_cmdshell 'NET START ..' che oltre al
risolvible problema del parsing in se', comunque risolvibile, ti espone
anche al problema delle localizzazioni, in quanto l'output dipende appunto
dalla localizzazione installata di SQL Server =;-))
il consiglio migliore suppongo sia di fare eseguire i 2 servizi, sia SQL
Server che SQL Server Agent allo startup del sistema operativo stesso
tramite apposita impostazione del Tipo di Avvio dei servizi stessi.
riguardo lo shut down del servizio stesso, personalmente lascerei fare al
sistema operativo stesso (chiusura del servizio allo shut down del SO),
ovvero all'utente (interruzione indipendete da parte dello stesso).
ti si presenta pero' il problema di installazioni su piattaforma Win9x, dove
i comandi Net ..(Start/Stop...) non sono supportati e dove purtroppo SQL
Server non viene eseguito come servizio bensi' come applicazione; questo
preclude la possibilita' di automatizzare l'esecuzione dell'applicazione SQL
Server Agent, mentre resta la possibilita' di automatizzare l'esecuzione
dell'applicazione SQL Server tramite il Service Manager.
ti resta un'ulteriore possibilita', utilizzare cioe' il modello ad oggetti
SQL-DMO che espone l'oggetto JobServer relativo all'oggetto SQLServer...
l'oggetto JobServer espone il metodo .Start che permette di manipolare
l'esecuzione del server stesso, ed il metodo .JobServer.Status ritorna
l'effettivo stato del servizio/applicazione stesso, che ti pormetto di
monitorarne l'effettiva funzionalita'
saluti
e' configurabile come