HDI: Überwachen Sie die Aktivität Ihrer 4D Anwendung
Sie können angeben, welche Art von Aktivität Sie überwachen wollen:
- 4D Datenaktivität: Operationen, die die 4D Daten selbst betreffen,
- Netzwerkaktivität: Sie erhalten die gleichen Informationen wie in der Datei 4DRequestsLog (*),
- Sprachausführung: Sie erhalten die gleichen Informationen wie in der Datei 4DDebugLog (*).
(*) Es besteht keine Notwendigkeit, die entsprechenden Protokolldateien zu aktivieren, so dass kein Speicherplatz auf der Festplatte belegt wird.
START MONITORING ACTIVITY Befehl
Der Befehl START MONITORING ACTIVITY Befehl nimmt den Schwellenwert für die Dauer und die Art der zu überwachenden Vorgänge als Parameter. Hierfür können die folgenden neuen Konstanten zur Überwachung verwendet werden:
- Activity operations4D Daten: Operationen in den 4D Daten
- Activity networkOperationen der Netzwerkaktivität
- Activity languageOperationen der Sprachausführung
Befehl Get Monitored Activity
Wenn Sie die gesamte aufgezeichnete Aktivität abrufen wollen, rufen Sie einfach den neuen Get Monitored Activity() Befehl auf!
Gibt eine Sammlung von Objekten mit den entsprechenden Informationen zurück, die Sie nach Belieben verwenden können (Generierung einer Datei, Anzeige einer Schnittstelle für den Administrator, usw.).
Befehl STOP MONITORING ACTIVITY
Wenn Sie die Aufzeichnung Ihrer 4D Anwendung beenden oder den Speicher leeren wollen, rufen Sie einfach den STOP MONITORING ACTIVITY Befehl auf.
konkretes BEISPIEL
In den meisten Fällen werden Sie einen Bedarf haben:
Ich möchte alle 10 Minuten überprüfen, ob bestimmte Vorgänge auf meinem 4D Server länger als 10 Sekunden gedauert haben. Wenn ja, möchte ich eine E-Mail an den Administrator senden (oder eine andere Maßnahme ergreifen).
Im Folgenden finden Sie einen Code, der genau das tut.
ON Methode zum Starten des Servers
C_LONGINT($monitorProcessId)
STOP MONITORING ACTIVITY
// Detect 4D data operations which lasted more than 10s
START MONITORING ACTIVITY (10;Activity operations)
//Run a monitoring process
$monitorProcessId :=New process("monitorOperations";0; "Monitor operations")
Überwachungsprozess (der auf dem Server ausgeführt werden soll)
C_COLLECTION($activities)
While (Not(Process aborted))
// Inspect 4D data activity every 10 minutes
DELAY PROCESS (Current process;36000)
// Get the long operations and exclude backup operations
$activities :=Get Monitored Activity().query("Not(activityData.message IN :1)";New collection("@backup@"))
If ($activities.length#0)
// Send an email to the administrator with $activities details
// Empty the memory and restart the monitoring
STOP MONITORING ACTIVITY
START MONITORING ACTIVITY (10;Activity operations)
End if
End while
bei der Methode zum Herunterfahren des Servers
C_COLLECTION($activities)
$activities :=Get Monitored Activity().query("Not(activityData.message IN :1)";New collection("@backup@"))
If ($activities.length#0)
// Send an email to the administrator with $activities details
End if