What's New in V3.5?
This section discusses the incremental changes in V3.5 compared to V3.0.
The following changes/enhancements have been made/added in V3.5:
|•||Firebird 3 Support|
|•||Purging of trace sessions and raw/parsed trace data|
|•||Increased RAM usage limit to 3GB/4GB|
|•||Bugfixes, improved stability, misc|
They are discussed in more detail in the following sections.
Firebird 3 Support
We put a lot of energy into Firebird 3 support (at the time of writing for Beta 1) across the entire product. Although Firebird 3 is in Beta stage, thus not recommended for production usage, we decided to support Firebird 3 in this early stage in FB TraceManager as a result of customer/developer requests and our own needs. As needed, we adopt changes in Firebird 3 Beta/RC/Final in the FB TraceManager continuously.
Supporting Firebird 3 covers the following areas in the product:
|•||Support in Header Page monitoring: New/changed data is parsed correctly.|
|•||Support in Monitoring Tables integration: Covering MON$ table changes and additions in an Firebird 3 ODS 12.0 database.|
|•||Support in Database Statistics integration: Quite some data has been added/changed in database statistics (gstat output). This is now correctly processed and parsed.|
|•||Stored function support in Trace API integration: Stored functions are new in Firebird 3. With additional trace configuration options (log_function_start, log_function_finish) and new trace events (EXECUTE_FUNCTION_START, EXECUTE_FUNCTION_FINISH), tracing of stored functions via the Trace API is now available in the product.|
New trace configuration options in the Register Project dialog:
New trace events related to stored function tracing:
|•||Stored function support in Procedure Hotspot Analysis: Beside stored procedures, you now also see stored function execution in the Procedure Hotspot Analsis.|
|•||Package name support in parsed and persisted trace data: Packages for grouping PSQL routines are new in Firebird 3. Raw trace data now reflects if a stored procedure/function from a package is called. This is now parsed and persisted correctly. For examples, see the screens above.|
|•||Package name support in Procedure Hotspot Analysis: The package name is now part of the aggregation key in the Procedure Hotspot Analysis. This allows more fine-grained analysis for equally named stored procedures/functions coming from different/no packages. For examples, see the screen above.|
|•||Support for the explain_plan trace configuration option to get the execution plan in trace data in the new Firebird 3 explain plan output format.|
Execution time for adding parsed trace data rows has been reduced by up to 50%. Due to architectural changes resulting in decoupling the trace data fetcher thread from the burden of persisting parsed trace data into the database, throughput of raw trace data fetching and processing has been increased by up to 250%. This also results in less temporarily suspended trace session events caused by the client not being able to keep up with server-side trace data generation. This all is especially noticeable in loaded systems.
Purging of trace sessions and raw/parsed trace data
Raw and parsed trace data can be stored in the FB TraceManager database. While this can be extremely useful to analyse Trace API based database activity at a later point, data volume can grow rapidly. Pre-defined Purge Options are now available in the Browse module.
Pre-defined in a way to purge:
|•||All, multi-selected and pre-configured timeframe filtered trace sessions for a selected project|
|•||All, multi-selected and pre-configured timeframe filtered raw/parsed trace data for a selected trace session|
This also always automatically deletes referenced data, e.g. when purging a trace session, this will also remove referenced raw and parsed trace data records.
There is no auto-purging at fixed intervals available. Purging must be explicitly issued by the end-user in the Browse module.
Increased RAM usage limit to 3GB (Windows 32-bit) / 4GB (Windows 64-bit)
Although FB TraceManager 3 is a 32-bit application, we are now able to use more RAM. On Windows 32-bit max. ~3GB. On Windows 64-bit ~ 4GB.
As with every release, we try to improve in the user experience area.
The Visible Columns Dialog (right-click on any grid and select Visible Columns) now got two new buttons to move columns to the beginning or to the end.
New "virtual" trace events have been added to signal unexpected issues with trace sessions. For example if a trace session can't be started due to the missing fbtrace.dll plugin. Or if a trace session is temporarily suspended by the Firebird server due to the client not keeping up fetching trace data from the server etc. The new trace events are called:
|•||TRACE SESSION ABORTED|
|•||TRACE SESSION FAILED|
|•||TRACE SESSION SUSPENDED|
A configurable trace project-based option for the maximum trace events per GUI refresh interval was added. This option can be found in the Register Project dialog and in the Parsed tab for a running trace session. This allows to fine-tune throughput vs. latency of parsed trace arriving in the parsed trace data grid. The default of 1000 trace events per two second GUI refresh interval is what we have found to be a good value for local connections.
For an active trace session, the per trace events statistics, available in the Statistics tab, have been extended with additional counters. This gives you more insight on the load of the database, the throughput regarding raw trace data fetching and processing etc. The counters are based per GUI refresh interval. In the example below, we see ~ 1500 events processed for a configured 2 seconds GUI refresh interval. This can also be used as an indicator for e.g. increasing the maximum trace events setting discussed above.
We have improved the docking capabilities of different working areas a lot. The UI experience is now similar to dockable windows as in Visual Studio etc. For example, pretty much all tabs can now be docked into different areas by drag&drop.
Bugfixes, improved stability, misc
A few bugs, annoyances and stability issues under load have been fixed. The included Firebird 32-bit embedded version has been updated to Firebird 2.5.3.
Compatibility to pre V3 licenses
V1/V2 licenses won't work with V3. If you are in an active 1-year subscription mode, feel free to request a V3 license without any additional fees. For renewing the subscription, a discount is available. Get in touch with us.