mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-22 18:43:02 +01:00
Trim trailing spaces per Adriano request.
This commit is contained in:
parent
9fcfe6dcf8
commit
8bd19f9054
@ -1,59 +1,59 @@
|
||||
|
||||
Trace and audit services.
|
||||
|
||||
Firebird 2.5 offers new trace and audit facilities. This new abilities allows
|
||||
to log various events performed inside the engine (such as statement execution,
|
||||
connect\disconnect etc) and to collect corresponding performance characteristics
|
||||
in real time. The base term is trace session. Each trace session have its own
|
||||
configuration, state and output.
|
||||
Firebird 2.5 offers new trace and audit facilities. This new abilities allows
|
||||
to log various events performed inside the engine (such as statement execution,
|
||||
connect\disconnect etc) and to collect corresponding performance characteristics
|
||||
in real time. The base term is trace session. Each trace session have its own
|
||||
configuration, state and output.
|
||||
|
||||
List of available events to trace is fixed and determined by the Firebird
|
||||
engine. List of events to trace, which data items to trace and placement of
|
||||
List of available events to trace is fixed and determined by the Firebird
|
||||
engine. List of events to trace, which data items to trace and placement of
|
||||
trace output is specified by trace configuration when trace session is created.
|
||||
|
||||
There are two kinds of trace sessions : system audit and user trace.
|
||||
There are two kinds of trace sessions : system audit and user trace.
|
||||
|
||||
System audit session is started by the engine itself and obtains configuration
|
||||
from the text file. The name of this file is set via new setting in firebird.conf
|
||||
("AuditTraceConfigFile") and by default have empty vale, i.e. no system audit
|
||||
is configured. There may be only one system audit trace session, obviously.
|
||||
Configuration file contains list of traced events and placement of trace log(s).
|
||||
It is very flexible and allows to log different set of events for different
|
||||
System audit session is started by the engine itself and obtains configuration
|
||||
from the text file. The name of this file is set via new setting in firebird.conf
|
||||
("AuditTraceConfigFile") and by default have empty vale, i.e. no system audit
|
||||
is configured. There may be only one system audit trace session, obviously.
|
||||
Configuration file contains list of traced events and placement of trace log(s).
|
||||
It is very flexible and allows to log different set of events for different
|
||||
databases into different log files. Example configuration file fbtrace.conf
|
||||
placed in the Firebird root directory and contains full description of its
|
||||
placed in the Firebird root directory and contains full description of its
|
||||
format, rules and syntax.
|
||||
|
||||
User trace session is managed by user via Services API. There are five new
|
||||
services for this purposes - to start, stop, suspend, resume trace session and
|
||||
User trace session is managed by user via Services API. There are five new
|
||||
services for this purposes - to start, stop, suspend, resume trace session and
|
||||
to list all known trace sessions. See README.services_extension for details.
|
||||
|
||||
When user application starts trace session it set (optional) session name
|
||||
and (mandatory) session configuration. Session configuration is a text. Rules
|
||||
and syntax are the same as for configuration file mentioned above except of
|
||||
placement of trace output. Engine stores output of user session in set of
|
||||
temporary files (1MB each) and deletes it automatically when file was read
|
||||
completely. Maximum size of user session's output is limited and set via
|
||||
"MaxUserTraceLogSize" setting in firebird.conf. Default value is 10 MB.
|
||||
When user application starts trace session it set (optional) session name
|
||||
and (mandatory) session configuration. Session configuration is a text. Rules
|
||||
and syntax are the same as for configuration file mentioned above except of
|
||||
placement of trace output. Engine stores output of user session in set of
|
||||
temporary files (1MB each) and deletes it automatically when file was read
|
||||
completely. Maximum size of user session's output is limited and set via
|
||||
"MaxUserTraceLogSize" setting in firebird.conf. Default value is 10 MB.
|
||||
|
||||
After application starts user trace session it must read session's output
|
||||
from service (using isc_service_query). Session output could be produced by the
|
||||
engine faster than application is able to read it. When session output grows
|
||||
more than "MaxUserTraceLogSize" engine automatically suspends this trace
|
||||
session. When application reads part of the output so output size stay less than
|
||||
After application starts user trace session it must read session's output
|
||||
from service (using isc_service_query). Session output could be produced by the
|
||||
engine faster than application is able to read it. When session output grows
|
||||
more than "MaxUserTraceLogSize" engine automatically suspends this trace
|
||||
session. When application reads part of the output so output size stay less than
|
||||
"MaxUserTraceLogSize" engine automatically resumed trace session.
|
||||
|
||||
When application decide to stop its trace session it just do detach from
|
||||
service. Also there is abilities to manage trace sessions (suspend\resume\stop).
|
||||
Administrators allowed to manage any trace session while ordinary users allowed
|
||||
to manage its own trace sessions only.
|
||||
When application decide to stop its trace session it just do detach from
|
||||
service. Also there is abilities to manage trace sessions (suspend\resume\stop).
|
||||
Administrators allowed to manage any trace session while ordinary users allowed
|
||||
to manage its own trace sessions only.
|
||||
|
||||
If user trace session was created by ordinary user it will trace only
|
||||
If user trace session was created by ordinary user it will trace only
|
||||
connections established by this user.
|
||||
|
||||
User trace sessions is not preserved when all Firebird processes is stopped.
|
||||
I.e. if user started trace session and Firebird SS or SC process is shutted down,
|
||||
this session is stopped and will not be restarted with new Firebird process. For
|
||||
CS this is not the case as user trace session can't live without connection with
|
||||
User trace sessions is not preserved when all Firebird processes is stopped.
|
||||
I.e. if user started trace session and Firebird SS or SC process is shutted down,
|
||||
this session is stopped and will not be restarted with new Firebird process. For
|
||||
CS this is not the case as user trace session can't live without connection with
|
||||
service manager and dedicated CS process.
|
||||
|
||||
|
||||
@ -74,7 +74,7 @@ a) Trace prepare, free and execution of all statements within connection 12345
|
||||
</database>
|
||||
|
||||
b) Trace all connections of given user to database mydatabase.fdb
|
||||
Log executed INSERT, UPDATE and DELETE statements, nested calls to procedures
|
||||
Log executed INSERT, UPDATE and DELETE statements, nested calls to procedures
|
||||
and triggers and show corresponding PLAN's and performance statistics.
|
||||
|
||||
<database mydatabase.fdb>
|
||||
@ -92,13 +92,13 @@ b) Trace all connections of given user to database mydatabase.fdb
|
||||
So far there is no specialized standalone utility to work with trace services.
|
||||
Therefore examples below uses more general utility fbsvcmrg.
|
||||
|
||||
a) Start user trace named "My trace" using configuration file fbtrace.conf and read
|
||||
a) Start user trace named "My trace" using configuration file fbtrace.conf and read
|
||||
its output on the screen :
|
||||
|
||||
fbsvcmgr service_mgr action_trace_start trc_name "My trace" trc_cfg fbtrace.conf
|
||||
|
||||
To stop this trace session press Ctrl+C at fbsvcmgr console window. Or, in
|
||||
another console : list sessions and look for interesting session ID (b) and stop
|
||||
To stop this trace session press Ctrl+C at fbsvcmgr console window. Or, in
|
||||
another console : list sessions and look for interesting session ID (b) and stop
|
||||
it using this found ID (e).
|
||||
|
||||
b) List trace sesions
|
||||
@ -121,24 +121,24 @@ e) Stop trace sesson with ID 1
|
||||
|
||||
There are three general use cases :
|
||||
|
||||
1. Constant audit of engine.
|
||||
1. Constant audit of engine.
|
||||
|
||||
This is served by system audit trace. Administrator edit (or create new)
|
||||
trace configuration file, set its name in firebird.conf (AuditTraceConfigFile
|
||||
This is served by system audit trace. Administrator edit (or create new)
|
||||
trace configuration file, set its name in firebird.conf (AuditTraceConfigFile
|
||||
setting) and restarts Firebird. Later administrator could suspend\resume\stop
|
||||
this session without need to restart Firebird. To make audit configuration
|
||||
this session without need to restart Firebird. To make audit configuration
|
||||
changes accepted by the engine, Firebird needs to be restarted.
|
||||
|
||||
2. On demand interactive trace of some (or all) activity in some (or all)
|
||||
databases.
|
||||
2. On demand interactive trace of some (or all) activity in some (or all)
|
||||
databases.
|
||||
|
||||
Application start user trace session, read its output and show traced events
|
||||
to user in real time on the screen. User could suspend\resume trace and at last
|
||||
Application start user trace session, read its output and show traced events
|
||||
to user in real time on the screen. User could suspend\resume trace and at last
|
||||
stop it.
|
||||
|
||||
3. Collect some engine activity for a relatively long period of time (few hours
|
||||
3. Collect some engine activity for a relatively long period of time (few hours
|
||||
or even whole day) to analyse it later.
|
||||
|
||||
Application start user trace session and read and save trace output to file
|
||||
(or set of files). Session must be stopped manually by the same application or
|
||||
by another one.
|
||||
Application start user trace session and read and save trace output to file
|
||||
(or set of files). Session must be stopped manually by the same application or
|
||||
by another one.
|
||||
|
Loading…
Reference in New Issue
Block a user