Guten Morgen,
derzeit beschäftige ich mich viel mit dem Trace-Tool. Allerdings habe ich das Problem, unter vielen Ausgaben auf dem Produktiv-System, die korrekten Statements zu finden. Ist es möglich die Trace-Ausgaben auf einen Benutzer zu filtern?
Gruß
Martin
Trace auf Benutzer
Moderator: martin.koeditz
- martin.koeditz
- Beiträge: 469
- Registriert: Sa 31. Mär 2018, 14:35
Martin Köditz
it & synergy GmbH
it & synergy GmbH
Guten Tag,
auf einen Benutzer habe ich nichts gefunden, nur auf eine Connection_id.
https://firebirdsql.org/rlsnotesh/rnfb2 ... race-oview
Vielleicht hilft dieses weiter.
Gruß
Micha
auf einen Benutzer habe ich nichts gefunden, nur auf eine Connection_id.
https://firebirdsql.org/rlsnotesh/rnfb2 ... race-oview
Vielleicht hilft dieses weiter.
Gruß
Micha
- martin.koeditz
- Beiträge: 469
- Registriert: Sa 31. Mär 2018, 14:35
Hi Volker,
da auf dem Produktivsystem jede Menge Benutzer parallel arbeiten und so jede Menge Abfragen durchlaufen, ist es schwer einen spezifischen Workflow zu verfolgen. Ich möchte also einen Trace meiner Tätigkeiten abfangen. Wenn da noch tausend andere Abfragen aufgelistet werden, hast du verloren.
Gruß
Martin
da auf dem Produktivsystem jede Menge Benutzer parallel arbeiten und so jede Menge Abfragen durchlaufen, ist es schwer einen spezifischen Workflow zu verfolgen. Ich möchte also einen Trace meiner Tätigkeiten abfangen. Wenn da noch tausend andere Abfragen aufgelistet werden, hast du verloren.
Gruß
Martin
Martin Köditz
it & synergy GmbH
it & synergy GmbH
Hallo Volker,
genau dieses habe ich ja in meinem Eintrag beschrieben.
In IB Expert habe ich auch nichts auf einen User gefunden.
Hier ist auch nur die Connection_Id vorgegeben.
Die Connection_ID( Attachment_ID) findet man in mon$attachments.
Hier dann bitte nach Remote_Process schauen und Anhand der Remote_Address die Attachemnt_ID ermitteln.
z.B. in Dialect1
SELECT a.mon$attachment_id as Attachment_ID,
a.mon$server_pid as Server_PID,
a.mon$state as State,
a.mon$attachment_name as Attachment_Name,
a.mon$user as User_Name,
a.mon$role as Role_Name,
a.mon$remote_protocol as Remote_Protocol,
a.mon$remote_address as Remote_Address,
a.mon$remote_pid as Remote_PID,
cs.rdb$character_set_name as Character_Set,
a.mon$timestamp as Established_At,
a.mon$garbage_collection as Garbage_Collection,
a.mon$remote_process as Remote_Process,
a.mon$stat_id as Statistics_ID
FROM mon$attachments a, rdb$character_sets cs
WHERE (a.mon$character_set_id = cs.rdb$character_set_id)
mfg Micha
genau dieses habe ich ja in meinem Eintrag beschrieben.
In IB Expert habe ich auch nichts auf einen User gefunden.
Hier ist auch nur die Connection_Id vorgegeben.
Die Connection_ID( Attachment_ID) findet man in mon$attachments.
Hier dann bitte nach Remote_Process schauen und Anhand der Remote_Address die Attachemnt_ID ermitteln.
z.B. in Dialect1
SELECT a.mon$attachment_id as Attachment_ID,
a.mon$server_pid as Server_PID,
a.mon$state as State,
a.mon$attachment_name as Attachment_Name,
a.mon$user as User_Name,
a.mon$role as Role_Name,
a.mon$remote_protocol as Remote_Protocol,
a.mon$remote_address as Remote_Address,
a.mon$remote_pid as Remote_PID,
cs.rdb$character_set_name as Character_Set,
a.mon$timestamp as Established_At,
a.mon$garbage_collection as Garbage_Collection,
a.mon$remote_process as Remote_Process,
a.mon$stat_id as Statistics_ID
FROM mon$attachments a, rdb$character_sets cs
WHERE (a.mon$character_set_id = cs.rdb$character_set_id)
mfg Micha
Am besten ist es, die Trace-API's innerhalb der Anwendung zu benutzen, da man dann gezielter mit seiner Connection-ID umgehen kann:
https://firebirdsql.org/file/documentat ... i-svctrace
Beim Start des Traces kann man die Konfigurationsdatei dann vorgeben, die die aktuelle Connection-ID dann enthält.
Wichtig ist natürlich, dass diese Id mit jedem Open der Connection geändert wird.
Mit "select current_connection from rdb$database" bekommt man seine aktuelle Id für das Setzen in der Tracekonfiguration mit anbschließendem Aufruf der Trace-API's.
https://firebirdsql.org/file/documentat ... i-svctrace
Beim Start des Traces kann man die Konfigurationsdatei dann vorgeben, die die aktuelle Connection-ID dann enthält.
Wichtig ist natürlich, dass diese Id mit jedem Open der Connection geändert wird.
Mit "select current_connection from rdb$database" bekommt man seine aktuelle Id für das Setzen in der Tracekonfiguration mit anbschließendem Aufruf der Trace-API's.