Welcome to Sign in | Help
in Search

cum pot afla daca sql server agent ruleaza ?

Last post 05-15-2008, 12:57 AM by ignatandrei. 17 replies.
Page 1 of 2 (18 items)   1 2 Next >
Sort Posts: Previous Next
  •  05-13-2008, 5:30 PM 4885

    cum pot afla daca sql server agent ruleaza ?

    Ma intereseaza cum pot afla daca SQl Server agent ruleaza  (mai exact daca serviciul de Windows este in running state)
    Problema este ca pot avea mai multe instante de SQL Server, in consecinta mai multe instante de SQL Server agent .., si nu stiu, data o instanta de SQL server, sa fac diferenta intre denumirile de instante de SQL Server agent.

    De asemenea, NU ma intereseaza daca un job ruleaza sau nu ( asta stiu cum sa o fac)
    O solutie cu SMO ar fi extraordinara ...

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  05-13-2008, 6:19 PM 4886 in reply to 4885

    Re: cum pot afla daca sql server agent ruleaza ?

    O posibilă soluţie in VB6 cu DMO (efortul de adaptare e minim pentru VB[.NET] şi SMO):
    Dim serverSql As New SQLServer

    serverSql.LoginTimeout = 30
    serverSql.Name = "server\instantaSQL"
    serverSql.Login = "sa"
    serverSql.Password = "parola pestelui prajit"
    serverSql.Connect

    MsgBox serverSql.JobServer.Status, , "Daca Status=1 atunci este Running"

  •  05-13-2008, 6:37 PM 4887 in reply to 4885

    Re: cum pot afla daca sql server agent ruleaza ?

    uite un ex folosind C# 3.0 pt SQL 2000 si 2005. Merge cu si oricare alta versiune precedenta daca-l scrii cu foreach. Trebuie sa adaugi o referinta spre System.ServiceProcess.

    using System;
    using System.Linq;
    using System.ServiceProcess;
    class Program
    {
        static void Main(string[] args)
        {
            foreach (var service in ServiceController.GetServices().Where( sc => (sc.ServiceName.StartsWith("SQLAgent") || sc.ServiceName.StartsWith("SQLSERVERAGENT")))) {
                Console.WriteLine(String.Format("SQL Agent: {0} Running: {1}", service.ServiceName, service.Status == ServiceControllerStatus.Running ? "Yes": "No"));
            }
        }
    }
  •  05-13-2008, 6:42 PM 4888 in reply to 4887

    Re: cum pot afla daca sql server agent ruleaza ?

    Poti incerca si un script "PowerShell" - cred ca Narcis a dat sambata un exemplu care lista serviciile "running"...
  •  05-13-2008, 7:19 PM 4889 in reply to 4888

    Re: cum pot afla daca sql server agent ruleaza ?

    Diana:
    Poti incerca si un script "PowerShell" - cred ca Narcis a dat sambata un exemplu care lista serviciile "running"...


    Asa : get-service  * | where-object {($_.ServiceName.StartsWith('SQLAgent') -or $_.ServiceName.StartsWith('SQLSERVERAGENT')) -and $_.Status -eq 'Running'}

    ? Smile
  •  05-13-2008, 7:41 PM 4890 in reply to 4889

    Re: cum pot afla daca sql server agent ruleaza ?

  •  05-14-2008, 5:50 AM 4891 in reply to 4889

    Re: cum pot afla daca sql server agent ruleaza ?

    Cryogenic1981:
    Diana:
    Poti incerca si un script "PowerShell" - cred ca Narcis a dat sambata un exemplu care lista serviciile "running"...


    Asa : get-service  * | where-object {($_.ServiceName.StartsWith('SQLAgent') -or $_.ServiceName.StartsWith('SQLSERVERAGENT')) -and $_.Status -eq 'Running'}

    ? Smile

    Cryogenic, daca am 2 instante de SQL Server, cu 2 servicii de SQL Agent ???

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  05-14-2008, 5:54 AM 4892 in reply to 4886

    Re: cum pot afla daca sql server agent ruleaza ?

    B_gd_n[ ]Sahlean:
    O posibilă soluţie in VB6 cu DMO (efortul de adaptare e minim pentru VB[.NET] şi SMO):
    Dim serverSql As New SQLServer

    serverSql.LoginTimeout = 30
    serverSql.Name = "server\instantaSQL"
    serverSql.Login = "sa"
    serverSql.Password = "parola pestelui prajit"
    serverSql.Connect

    MsgBox serverSql.JobServer.Status, , "Daca Status=1 atunci este Running"


    Bogdan,

    Am incercat si eu cu serverSql.JobServer.STATE ..., nu STATUS

     

    Dar din pacate STATE este de tipul   SqlSmoState http://technet.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.sqlsmostate(SQL.100).aspx

    CreatingThe object is being created.
    DroppedThe object is being dropped.
    ExistingThe object exists.
    PendingThe object is pending an instruction.
    ToBeDroppedThe object is waiting to be dropped.


    Iar STATUS nu exista la adresa

    http://technet.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.agent.jobserver_properties(SQL.100).aspx

    Tu ai incercat ce ai zis cu STATUS ?

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  05-14-2008, 5:55 AM 4893 in reply to 4887

    Re: cum pot afla daca sql server agent ruleaza ?

    Cryogenic1981:
    uite un ex folosind C# 3.0 pt SQL 2000 si 2005. Merge cu si oricare alta versiune precedenta daca-l scrii cu foreach. Trebuie sa adaugi o referinta spre System.ServiceProcess.

    using System;
    using System.Linq;
    using System.ServiceProcess;
    class Program
    {
        static void Main(string[] args)
        {
            foreach (var service in ServiceController.GetServices().Where( sc => (sc.ServiceName.StartsWith("SQLAgent") || sc.ServiceName.StartsWith("SQLSERVERAGENT")))) {
                Console.WriteLine(String.Format("SQL Agent: {0} Running: {1}", service.ServiceName, service.Status == ServiceControllerStatus.Running ? "Yes": "No"));
            }
        }
    }

    Super codul ...dar ... ai putea sa imi spui , ca la Power Shell, cum fac diferentele intre diferitele instante ?

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  05-14-2008, 8:58 AM 4895 in reply to 4892

    Re: cum pot afla daca sql server agent ruleaza ?

    Andrei,

    Exemplul lui Bogdan foloseşte SQL-DMO (nu SMO) şi funcţionează corect (l-am încercat din VBA6 cu 2 instanţe de SQL Server 2000).

    Din alt punct de vedere, poţi să recunoşti instanţa la care se referă un serviciu SQL Server Agent după numele serviciului: pentru default instance numele este SQLSERVERAGENT, iar pentru un named instance numele este SQLAgent$instancename (conform paginii http://msdn.microsoft.com/en-us/library/ms187008.aspx).

    Răzvan
  •  05-14-2008, 9:55 AM 4896 in reply to 4895

    Re: cum pot afla daca sql server agent ruleaza ?

    rsocol:


    Exemplul lui Bogdan foloseşte SQL-DMO (nu SMO) şi funcţionează corect (l-am încercat din VBA6 cu 2 instanţe de SQL Server 2000).


    Ai dreptate. Scuze ca nu am observat.
    Dar, din pacate, DMO a devenit obsolete ...
    http://msdn.microsoft.com/en-us/library/ms131540.aspx
    Iar SMO inca nu e complet, dupa cum am spus mai devreme...

    rsocol:

    Din alt punct de vedere, poţi să recunoşti instanţa la care se referă un serviciu SQL Server Agent după numele serviciului: pentru default instance numele este SQLSERVERAGENT, iar pentru un named instance numele este SQLAgent$instancename (conform paginii http://msdn.microsoft.com/en-us/library/ms187008.aspx).


    Super! Asta, combinat cu codul lui Cryogenic, rezolva problema ...

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  05-14-2008, 2:23 PM 4904 in reply to 4896

    Re: cum pot afla daca sql server agent ruleaza ?

    Se pare că o banală interogare pe sysprocesses din master rezolvă problema:
    SELECT program_name
    FROM sysprocesses
    WHERE LTRIM(RTRIM(program_name)) = 'SQLAgent - Generic Refresher'

    Dacă interogarea de mai sus returnează o înregistrare atunci SQLAgent rulează.
  •  05-14-2008, 3:46 PM 4906 in reply to 4904

    Re: cum pot afla daca sql server agent ruleaza ?

    B_gd_n[ ]Sahlean:
    Se pare că o banală interogare pe sysprocesses din master rezolvă problema:
    SELECT program_name
    FROM sysprocesses
    WHERE LTRIM(RTRIM(program_name)) = 'SQLAgent - Generic Refresher'

    Dacă interogarea de mai sus returnează o înregistrare atunci SQLAgent rulează.

    Super, Bogdane!

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
  •  05-14-2008, 4:16 PM 4907 in reply to 4906

    Re: cum pot afla daca sql server agent ruleaza ?

    In SQL 2005 pentru "SQLAgent - Generic Refresher" exista o inregistrare in sys.dm_exec_sessions.

  •  05-14-2008, 4:18 PM 4908 in reply to 4907

    Re: cum pot afla daca sql server agent ruleaza ?

    Diana:

    In SQL 2005 pentru "SQLAgent - Generic Refresher" exista o inregistrare in sys.dm_exec_sessions.


    ei , si acum m-ati bagatara in ceata ... Intre tine si bogdan , care solutie s-o aleg?

    Ignat Andrei
    http://serviciipeweb.ro/iafblog
Page 1 of 2 (18 items)   1 2 Next >
View as RSS news feed in XML
Powered by Community Server (Commercial Edition), by Telligent Systems