Each table row contains information on some event.
There are two kinds of events:
Whether particular event is lasting event or point event, depends on your tasks.
For example, you may think of method
execution as of a lasting event,
which starts when the method enters and ends when the method exits,
if you are interested to know how long the method execution takes,
or to discover other events which happen while
Foo.bar() is running,
e.g. what kind of I/O it performs, whether it accesses database or other resources etc.
In case you are only interested in
Foo.bar() invocations as in a fact,
you may think of them as of point events.
On table creation, you decide which kind of events the table is intended for, specifying appropriate parameters of the table object constructor.
So, each table can store either of the event kinds.
A lasting event starts when table row is created with
and ends when the row is closed with
Table.closeRow() must not be used for tables with point events.
Thread, stack trace and/or times are recorded for all events on row creation, and also on row closing for lasting events.
For lasting events recorded as some table rows it is possible to find rows in other tables which correspond to events which happened during the lasting event. For example, if processing of JSP pages is recorded as lasting events in some table, and database access events are recorded in another table, it will be possible to learn which SQL activities happen during particular JSP page processing.