Sie benötigen eine Liste der Prozesse, die auf Ihrem 4D Server, 4D remote oder 4D standalone laufen, um Ihr eigenes Administrationsfenster zu erstellen? Sie möchten wissen, welcher Benutzer die einzelnen Prozesse gestartet hat, um ein Überwachungsfenster für Ihre Anwendung zu erstellen oder diese Informationen in einer Datenbank zu protokollieren, um später die Serverlast zu analysieren? Es ist jetzt einfach, diese Informationen durch Programmierung mit einem neuen Befehl abzurufen: Get process activity.
Überwachung von Prozessen und Benutzern
Get process activity ist ein neuer 4D Befehl, mit dem Sie die Liste der laufenden Prozesse und verbundenen Benutzer abrufen können.
Mit diesem Befehl können Sie die Serveraktivität aus der Sicht von Prozessen und Benutzern überwachen und auf einfache Weise einen solchen Prozess-Viewer erstellen, wie in unserem Datenbank-Beispiel dargestellt:
Bitte beachten Sie auch, dass diese Funktion ein erster Schritt ist, um Ihnen alle Werkzeuge zur Verfügung zu stellen, mit denen Sie Ihr eigenes, individuelles Serververwaltungsfenster erstellen können. Prozesse und Benutzer sind ein Anfang, natürlich werden mit zukünftigen R-Versionen weitere Möglichkeiten hinzukommen.
Code-Beispiele
Der Befehl Get process activity Befehl enthält zwei Selektoren (Processes only und Sessions only), um dem Entwickler die Möglichkeit zu geben, entweder nur die Informationen über die Prozesse oder nur die Informationen über die Benutzer (Sitzungen) abzurufen. Wenn kein Parameter übergeben wird, wird ein Objekt zurückgegeben, das 2 Sammlungen enthält: Prozesse und Sitzungen.
C_OBJECT($activity)
$activity:=Get process activity // processes + sessions at once
C_COLLECTION($pCol;$sCol)
$pCol:=$activity.processes
$sCol:=$activity.sessions
Beispiel für Informationen, die in der Sammlung processes zurückgegeben werden:
{ name:Application process, sessionID:4E3F3701DA6E4C449513D11FB68AA01C, number:4, ID:4, visible:true, type:-18, state:2, cpuUsage:0.022585061256626, cpuTime:8.1486859585647, preemptive:false }, { name:DB4D Flush, state:0, cpuUsage:0, cpuTime:0, preemptive:true }, (...)
Beispiel für die Informationen, die in der Session-Sammlung zurückgegeben werden:
{ type:remote, userName:Designer, machineName:VM10-MAINGUENE, systemUserName:fmainguene, IPAddress:localhost, creationDateTime:2017-04-26T07:59:27Z, state:active, ID:4E3F3701DA6E4C449513D11FB68AA01C }