Seite 1 von 1

Trace auf Benutzer

Verfasst: Mi 2. Mai 2018, 10:00
von martin.koeditz
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

Re: Trace auf Benutzer

Verfasst: Mi 2. Mai 2018, 13:28
von mclemens
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

Re: Trace auf Benutzer

Verfasst: Do 3. Mai 2018, 00:19
von vr2
Hallo zusammen,

was willst Du mit dem trace denn herausfinden? Slow-Log? Auslastung über den Tag verteilt?

Grüße, Volker

Re: Trace auf Benutzer

Verfasst: Do 3. Mai 2018, 08:57
von martin.koeditz
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

Re: Trace auf Benutzer

Verfasst: Di 22. Mai 2018, 18:48
von vr2
Hi Martin,

hast Du eine eigene connection beim Test? Dann limitiere das tracelog über den Parameter connection_id in der fbtrace.conf.

Gruß Volker

Re: Trace auf Benutzer

Verfasst: Di 22. Mai 2018, 20:16
von mclemens
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

Re: Trace auf Benutzer

Verfasst: Mi 23. Mai 2018, 09:34
von bfuerchau
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.