What's New in V3.0?
Welcome to FB TraceManager 3
We are very excited about this new major release. Walk through this section to get an high-level overview on the changes/improvements in FB TraceManager 3. For a detailed change-log, check out the History section.
Compatibility to pre V3 databases
Per default, V3 gets installed into it's own, new directory. Check out the Installation section. You can re-use a pre V3 database by following these steps:
|•||Close all running FB TraceManager processes including FBTMLoggerSvc3 services (if any).|
|•||Go to the FBTM.fdb or FBTM2.fdb database directory. Usually this is C:\Users\<account>\AppData\Roaming\FB TraceManager <version>.|
|•||Make sure (e.g. by renaming the database file) that nobody is actively using the database and copy it over to the new user-specific application directory. See the Installation section.|
|•||Rename the pre-installed FBTM3.fdb database to something else and rename your existing V1/V2 database to FBTM3.fdb.|
|•||Run FB TraceManager 3. It will take care of upgrading the database to the newest version.|
Now it's time to discuss the new features. Keep on reading.
Hotspots Analysis (New)
Hotspots Analysis offers a very efficient way to provide a high-level overview on what has been executed in the database, by aggregating parsed trace data on-the-fly, without the need to persist data in the FB TraceManager database first. Different hotspot types are available: Statement Hotspot, Procedure Hotspot and Trigger Hotspot.
Some additional information is available in the Hotspots Analysis section.
In context of Hotspots Analysis, a new Disabled flag in the Raw/Parsed area is noteable. If selected, no parsed trace data is added to the visualization processing queue, while Hotspots Analysis is still operational. This results in a light-weight trace session background worker thread, in case Hotspots Analysis data is the only thing you want to have.
Database Monitoring (Improved)
1) Per-Database Monitoring has been improved to show percentage bars in various grids, for example:
|•||Percentage of table size related to the database size|
|•||Percentage of index size related to total index size of database|
|•||Percentage of index size related to total index size per table|
2) Improved algorithms to avoid false positives in Table/Index error/coloring detection
3) Added SEVERITY column in Database Monitoring - Header Page Monitoring and Database Monitoring - Database Statistics Monitoring, which can be used for filtering severity issues in the grids. This information also gets persisted in the database when taking a snapshot.
Trace Data Parsing (Improved)
Parsing of raw trace data has been improved in a way, to offer parsed trace data for:
|•||Parameters (Bind Variables)|
|•||Sweep Transaction Counters|
This all is available through a new View context menu item in the parsed trace data grid, which opens a content dialog and dependent on the column, parsed detail data is shown in a grid. For example, same trace data, raw vs. parsed:
Of course, this additional parsed trace data is persisted in the FB TraceManager database as well.
Custom Trace Configuration Template Management (New)
In the Register Project wizard, you now have a possibility to select from pre-installed trace configurations and manage your own.
This allows you to quickly pick and re-use trace configurations in your trace projects.
Firebird Embedded as Traceable Server (New)
It's now possible to register and run a trace against a 32-bit Firebird Embedded Server engine.
|•||Leave the Host information empty|
|•||Point the client library to an embedded engine library|
The Firebird trace plugin fbtrace.dll located in the plugins sub-directory is now part of the included Firebird Embedded Engine in FB TraceManager. This allows to use Firebird Embedded 32-bit as a traceable server out-of-the box.
Garbage Collection Exposure (New in V3.0.2)
V3.0.2 now exposes garbage collection information more user-friendly.
In parsed trace data, you now have four additional columns:
|•||Has Garbage Collection|
|•||GC Backout Total|
|•||GC Purge Total|
|•||GC Expunge Total|
This allows you to quickly identify if GC might be the reason for slower query execution of the same statement. In the example above, with GC, execution time was 4801ms, while without: 715ms.
In the per-database monitoring tables integration part, the Has Garbage Collection column has been added in the Record Statistics tab.
Performance and Stability (Improved)
Beside adding new features, we invested quite some time to improve stability and increase parser/visualization throughput.
The result is:
|•||We have fixed a bunch of bugs, a few of them hard to reproduce due to multi-threading issues|
|•||Parser/Visualization throughput has been improved by a factor of ~ 5. This results in less missing trace events for trace sessions under load, due to Firebird automatically suspending a trace session, when the client isn't capable to fetch trace data in an appropriate time.|
The following additional changes can be noted:
|•||Included Firebird Embedded Engine has been updated to 2.5.2|
|•||We removed the Chart trace visualization, as we didn't see any additional value|
|•||Re-arranged the Registered Projects and Trace Session List areas to the upper client area|
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.