Skip to content

Releases: NormanDunbar/DeadlockAnalysys

Release 1.0.5

16 May 11:36
Compare
Choose a tag to compare

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

18 Mar 11:33
Compare
Choose a tag to compare

Another minor update.

  • Fixed spelling;
  • Fixed grammar;
  • Fixed 'frequently' when I meant 'infrequently' when explaining bitmap indexes.

Release 0.1.3

22 Jan 21:27
Compare
Choose a tag to compare

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

20 Jan 17:37
Compare
Choose a tag to compare

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.

17 Jan 15:21
Compare
Choose a tag to compare

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

17 Jan 14:30
Compare
Choose a tag to compare

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 of dbms_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.