none
Jobinformationen fehlen bei Abfrage über exec sp_help_jobactivity obwohl in Abfrage exec sp_help_jobhistory vorhanden RRS feed

  • Frage

  • Hallo alle zusammen!

    Ich habe folgendes Problem mit mehreren Jobs, die täglich laufen:

    Wenn ich über sp_help_jobactivity meine Jobs auswerten möchte, erscheinen für alle Status-Werte ausser der nächsten Ausführung NULL-Werte. Überprüfe ich die selben Jobs mit sp_help_jobhistory, so erscheinen die korrekten Werte der letzten Ausführung(en).

    Die Jobs laufen immer um 00:00:00 Uhr. Das Problem tritt seit dem letzten Neustart des Servers heute (28.03.2012) um 08:15 Uhr auf.

    Liefert die sp_help_jobactivity immer nur Werte seit dem letzten Neustart des SQLServerAgents oder des Serverdienstes oder ähnliches?

    Oder womit ist dieses Verhalten zu erklären?

    Es handelt sich um einen SQL-Server 2008 R2 - Standard auf einem Server mit Windows 2008 R2 Server -BS.

    Ich freue mich über jeden Hinweis! :-)

    DANKE

    hsackmann

    Mittwoch, 28. März 2012 08:09

Antworten

  • Hallo!
    Das kann ich so nachvollziehen.
    sysjobactivity: Zeichnet die aktuelle Auftragsaktivität und den aktuellen Status von SQL Server-Agent auf.

    Schau Dir auch mal den Inhalt der Prozedur in der msdb (Gespeicherte Systemprozeduren) an. Dort siehst Du das SQL.
    Die Tabelle sysjobactivity hat bei mir dann erst mal keine aktuellen Werte, bis die Jobs einmal gelaufen sind.
    Diese Tabelle wird also eher dafür benötigt, um anzuzeigen, ob ein Job aktuell läuft.

    Zur sysjobhistory-Tabelle hatte ich hier mal ein paar Worte geschrieben:
    http://www.insidesql.org/blogs/cmu/sql_server/sqlserver-agent-auftragsverlauf
     Hier gibt es auch noch mal einen Report dazu:
    http://www.sqllion.com/2011/11/job-running-status-report-in-ssrs/
    JOB Running Status Report in SSRS

    Einen schönen Tag noch,
    Christoph
    --
    Microsoft SQL Server MVP
    www.insidesql.org/blogs/cmu

    • Als Antwort markiert hsackmann Mittwoch, 28. März 2012 13:20
    Mittwoch, 28. März 2012 08:34

Alle Antworten

  • Hallo!
    Das kann ich so nachvollziehen.
    sysjobactivity: Zeichnet die aktuelle Auftragsaktivität und den aktuellen Status von SQL Server-Agent auf.

    Schau Dir auch mal den Inhalt der Prozedur in der msdb (Gespeicherte Systemprozeduren) an. Dort siehst Du das SQL.
    Die Tabelle sysjobactivity hat bei mir dann erst mal keine aktuellen Werte, bis die Jobs einmal gelaufen sind.
    Diese Tabelle wird also eher dafür benötigt, um anzuzeigen, ob ein Job aktuell läuft.

    Zur sysjobhistory-Tabelle hatte ich hier mal ein paar Worte geschrieben:
    http://www.insidesql.org/blogs/cmu/sql_server/sqlserver-agent-auftragsverlauf
     Hier gibt es auch noch mal einen Report dazu:
    http://www.sqllion.com/2011/11/job-running-status-report-in-ssrs/
    JOB Running Status Report in SSRS

    Einen schönen Tag noch,
    Christoph
    --
    Microsoft SQL Server MVP
    www.insidesql.org/blogs/cmu

    • Als Antwort markiert hsackmann Mittwoch, 28. März 2012 13:20
    Mittwoch, 28. März 2012 08:34
  • Hallo Herr Muthmann,

    vielen Dank für die schnelle Info. Ich glaube es liegt daran, dass der die Prozedur sp_helpjobactivity über die aktuelle Seesion bzw SessionId sucht. Und nach einem Server-Neustart logischerweise auch die Session eine neue und somit die SessionId eine andere ist.

    Dadruch findet die Funktion nicht das gewünschte...

    Mit Hilfe Iheres letzten Links (mit dem Report) kann ich glaube ich das gewünschte Ziel erreichen...

    Vielen DANK nochmal...

    Einen schönen Tag noch

    hsackmann

    Mittwoch, 28. März 2012 13:25