Releases: NormanDunbar/DeadlockAnalysys
Release 1.0.5
Another minor update.
- Fixed 'infrequently' when I meant 'in frequently' when explaining bitmap indexes. Sigh.
- Updated CSS to hide the top left cell of the Deadlock Graph table. It looks better.
- Code fixed to apply the CSS change.
All files are now 32 bit for Windows, which will run on 32 or 64 bit Windows, while Linux users get separate 32 and 64 bit versions.
All zip files include the docs.
Release 1.0.4
Another minor update.
- Fixed spelling;
- Fixed grammar;
- Fixed 'frequently' when I meant 'infrequently' when explaining bitmap indexes.
Release 0.1.3
This is a minor enhancement release. No bugs fixed.
- When multiple deadlocks exists in a trace file, it's nice to see what caused them all in the
Tracefile Summary
section of the report.
Release 0.1.2
No bug fixes, thankfully, but a couple of amendments and you now get documentation!
Changes:
- Documentation added, with pictures! ;-)
- Scanning within deadlock dumps stops searching when the end of the current deadlock is reached.
- The session (SID) that was dumped is now listed in the Deadlock Summary section of the report.
Enjoy.
Release 0.1.1 - bug fix.
This release fixes the big in Release 0.1.0 where there is no contents list in the report if there is a single deadlock in the trace file.
Release version 0.1.0
Introduction
The very first release of this application which has languished, unloved, since some time in 2017 when I first started it!
Binaries & Source Code
There are compiled versions for Windows 32/64 bit (DeadlockAnalysis.exe
) and Linux 32/64 bit too (DeadlockAnalysis
). Source code is available to compile of other systems which I don't have. GCC was used to create this utility. You will also find a Code::Blocks project file if you use that IDE.
What is it?
This utility will read a trace file produced by the Oracle database and scan it for a deadlock, or more than one if that's what it finds. For each deadlock it will generate a report with the relevant details of the deadlock extracted from all the cruft in the trace file.
Where it can, it tries to diagnose the underlying reason as to why the deadlock occurred. These, currently, being:
- User defined locks -
select ... for update
,lock table ... in exclusive mode
, use ofdbms_lock
etc; - Application caused deadlocks - getting hold of resources in different orders in different sessions;
- Self-deadlocks - use and misuse of autonomous transactions, for example;
- Misuse of Primary or Unique Keys - multiple sessions trying to write to the same PK/UK;
- Misuse of bitmap indexes - there's more to these indexes than meets the eye;
- Insufficient ITL entries;
Execution
Run the utility with a list of Oracle trace files on the command line. Each trace gets a new report file, in the same folder as the trace file.
Reports
The report is in HTML format and there will be a single report file for each trace file passed. There is a separate CSS file to format the report. You can edit this to suit your own installation standards - it will not be overwritten if it exists when the utility is run.
Have fun diagnosing the reasons for your Oracle Deadlocks.