krn.JobThreadGetInfo

Dieser Job liefert Informationen zu den Threads des Servers, insbesondere zu dem Job, der aktuell oder zuletzt auf dem jeweiligen Thread ausgeführt wird. Er ist die schlanke Momentaufnahme (welcher Thread welchen Job unter welchem Benutzer wie lange ausgeführt hat); die ausführliche Detailanalyse eines einzelnen Threads liefert krn.JobThreadGetCallStack.

1. Eingabeparameter

Name Typ Pflicht Beschreibung

Flags

INT

Ja

Derzeit nicht unterstützt — 0 übergeben.

2. Ausgabeparameter

Name Typ Abhängigkeit Beschreibung

Info

STRING

base64-codierter Puffer mit einem Datensatz je Thread. Aufbau siehe unten.

InfoType

STRING

Semikolon-separierte Beschreibung der Felder, die je Datensatz in Info zurückgeliefert werden

3. Aufbau des Info-Puffers

Der Puffer ist base64-codiert und entschlüsselt sich zu einem Datensatz je Thread. Die 20 durch den Parameter InfoType beschriebenen Felder sind reiner ASCII-Text und durch NUL-Zeichen (0x00) getrennt; nur diese 20 Felder bilden die stabile Schnittstelle. Nach dem letzten Feld folgt eine nicht dokumentierte Binärstruktur (interne Zeiger; in Speicherabzügen zusätzlich eine Kopie der aktiven Session-GUID-Liste), die ignoriert werden sollte.

Die Zeitstempelfelder (created, start, performed, stop) verwenden das Format <Epoch>.<Sequenz>, also Unix-Epoch-Sekunden gefolgt von einer laufenden Sequenznummer.

InfoType liefert die folgende Feldreihenfolge:

Feld Beschreibung

threadid

OS-Thread-Kennung (identisch zu den Thread-Kennungen aus krn.QueueGetStatistic und krn.JobThreadGetCallStack)

queue

Queue, zu der der Thread gehört

number

Index des Threads innerhalb seiner Queue (0 … NumThreads-1)

jobsummary

Laufzeit des aktuellen bzw. zuletzt ausgeführten Jobs in Sekunden (rechtsbündig formatiert)

jobcount

Anzahl der von diesem Thread verarbeiteten Jobs

connection

Kennung der Verbindung, die den Job bearbeitet; -1, wenn der Thread untätig ist

created

Erstellungs- bzw. Enqueue-Zeitpunkt des Jobs

uniquenumber

Monoton steigende Jobinstanz-Kennung

jobname

Name des aktuell bzw. zuletzt ausgeführten Jobs

personality

Sicherheits-/Impersonation-Kontextstufe (vermutet)

start

Startzeitpunkt des Jobs

performed

Zeitpunkt, zu dem die Verarbeitung tatsächlich begann

stop

Endzeitpunkt des Jobs; entspricht start, solange der Job noch läuft bzw. gerade beendet wurde

jobstate

Statuscode des Jobs (0 = untätig/abgeschlossen)

jobcp

Content-Processing-Flag (vermutet)

sessguid

GUID der Arbeitssitzung, die den Job besitzt

statname

Name der Station (Rechnername)

username

Benutzer, unter dem der Job ausgeführt wird

sql

Aktuell ausgeführtes SQL-Statement; nur belegt, während der Thread eine Datenbankabfrage ausführt

dbstate

Statuscode der Datenbankverbindung

Untätige Threads liefern jobname, sessguid und username leer, connection = -1 sowie die Zeitstempel 0.000.

4. Rückgabe

(INT): 0 = Job erfolgreich, sonst Fehlercode.