Der Befehl GET ACTIVITY SNAPSHOT gibt Arrays zurück, die mit 4D Daten ablaufende Operationen beschreiben. Diese Operationen zeigen in der Regel ein Ablaufdialog.
So erhalten Sie eine Momentaufnahme der Operationen, die am meisten Zeit benötigen bzw. am häufigsten auf dem Server laufen, wie z.B. Schreiben in den Cache oder Ausführen von Formeln.
Hinweis: Die vom Befehl GET ACTIVITY SNAPSHOT zurückgegebene Information ist dieselbe wie auf der Seite "Real-time monitor" (RTM) des Verwaltungsfensters von 4D Server. Weitere Informationen dazu finden Sie auf der Seite Real Time Monitor des 4D Server Handbuchs.
GET ACTIVITY SNAPSHOT bearbeitet standardmäßig Operationen, die lokal ausgeführt werden (mit 4D Einzelplatz, 4D Server oder 4D im remote Modus). Mit 4D im remote Modus können Sie aber auch eine Momentaufnahme der Operationen erhalten, die auf dem Server ausgeführt werden. Dazu müssen Sie nur den Stern (*) als letzten Parameter übergeben. Dann werden die Server Daten auch lokal übermittelt. Der Parameter * wird beim Ausführen des Befehls auf 4D Server oder im 4D Einzelplatz ignoriert.
Mit dieser Syntax werden alle Operationen in strukturierter Form im 4D Array Objekt (arrAktivität) zurückgegeben. Jedes Element des Array ist ein Objekt in folgender Form:
maxValue (Zahl): Anzahl Wiederholungen für diese Operation (-1 für nicht wiederholte Operationen)
currentValue (Zahl): Aktuelle Wiederholung
interruptible (Zahl): Operation kann durch Anwender abgebrochen werden (0=Ja, 1=Nein)
remote (Zahl): Operation läuft auf Client und Server (0=Ja, 1=Nein)
uuid (Text): UUID Identifier für Operation
taskId (Zahl): Interne ID des Prozesses der die Operation gestartet hat
startTime (Text): Start Zeit der Operation in Format "yyyy:mm:dd hh:mm:ss:mls"
duration (Zahl): Dauer der Operation in Millisekunden
dbContextInfo (Objekt): Information zu Operationen, die über die Datenbank-Engine verwalten werden. Es gibt folgende Eigenschaften:
host_name (String): Name des Host, der die Operation gestartet hat
user_name (String): Name des 4D Anwenders, dessen Sitzung die Operation gestartet hat
task_name (String): Name des Prozesses, der die Operation gestartet hat
task_id (Zahl): Nummer des Prozesses, der die Operation gestartet hat
client_uid (String): optional, uuid des Client, der die Operation gestartet hat
is_remote_context (Boolean, 0 oder 1): optional, gibt an, ob die Datenbankoperation von einem Client (Wert 1) oder vom Server über eine Serverprozedur (Wert 0)
user4d_id (num): Nummer des aktuellen 4D Anwenders auf der Client-Seite
client_version (String): vier Stellen für die 4D Engine der Anwendung, so wie vom Befehl Application version zurückgegeben.
Hinweis: client_uid und is_remote_context sind nur in der Client/ServerUmgebung verfügbar. client_uid wird nur zurückgegeben, wenn die Datenbankoperation auf einen Client-Rechner gestartet wurde.
dbOperationDetails (Objekt): Die Eigenschaft wird nur zurückgegeben, wenn die Operation die Datenbank-Engine verwendet. Das gilt z.B. für Suchläufe bzw. Sortierungen. Es ist ein Objekt mit spezifischen Informationen zur Operation ansich. Die verfügbaren Eigenschaften richten sich nach der ausgeführten Datenbankoperation. Sie können z.B. enthalten:
table (String): Name der Tabelle, die von der Operation verwendet wird
field (String): Name des Feldes, das von der Operation verwendet wird
queryPlan (String): Suchplan, der für die Operation definiert wurde
...
subOperations (Array): Array Objekt mit Unteroperationen für die aktuelle Operation (falls vorhanden). Die Struktur jedes Unterelements ist identisch zum Hauptobjekt. Gibt es keine Unteroperationen, ist der Eintrag leer.
Mit dieser Syntax erscheinen alle Operationen in mehreren synchronisierten Arrays (bei jeder Operation wird ein Element in allen Arrays hinzugefügt). Folgende Arrays werden zurückgegeben:
arrUUID: Enthält die UUIDs jeder Operation (entspricht der Eigenschaft uuid des Objekts arrAktivität in der oberen Syntax)
arrStart: Enthält die Startzeiten jeder Operation (entspricht der Eigenschaft startTime des Objekts arrAktivität in der oberen Syntax)
arrDauer: Enthält die Dauer jeder Operation in Millisekunden (entspricht der Eigenschaft duration des Objekts arrAktivität in der oberen Syntax)
arrInfo: Enthält die Bezeichnungen, die jede Operation beschreiben (entspricht der Eigenschaft message des Objekts arrAktivität in der oberen Syntax)
arrDetails (optional): Jedes Element dieses Array ist ein Objekt mit der Eigenschaft "Unteroperation" mit folgenden Eigenschaften:
"dbContextInfo" (Objekt): siehe oben
"dbOperationDetails" (Objekt): siehe oben
"Unteroperationen": Der Wert dieser Eigenschaft ist ein Array Objekt mit all den Unteroperationen zur aktuellen Operation. Hat die aktuelle Operation keine Unteroperationen, ist der Wert der Eigenschaft Unteroperationen ein leeres Array (entspricht der Eigenschaft Unteroperationen des Objekts Aktivität).
Repeat GET ACTIVITY SNAPSHOT(arrUUID;arrStart;arrDuration;arrInfo) If(Size of array(arrUUID)>0) TRACE// Debugger aufrufen End if Until(False) // Nicht beendete Schleife