• Developer area
  • 'Nested' DB Transactions: Improved reporting of previously started DB Transaction

Hi all,

I have improved the new logging capability that TimI recently introduced which aids us in finding the causes of 'Nested' DB Transaction problems.

  • Not only log the stacktrace of the previously started DB Transaction, but also report that Transaction's 'Valid' and 'Reused' Properties (cf. https://wiki.openpetra.org/index.php/DB_Access_Exception_Handling_Policy#Tips_for_Debugging).
  • Not only log that information, but include that information in the Exception that gets thrown so that this information gets to the Client and therefore is visible in the 'Unhandled Exception Dialog' (and hence that information easier finds its way into tracker items when the testers / users report problems!).
  • Throw more specific Exception:
    EDBTransactionBusyException instead of EOPDBException.

This is available from trunk Rev. 2822 onwards.

Kind regards,

ChristianK

I have further improved the reporting of 'Nested' DB Transaction problems: Now the ThreadId of the Thread on which the previous DB Transaction gets also reported, and the ThreadId of the Thread on which the attempt to begin a DB Transaction NOW gets reported, too. This should help in very tricky server-side multi-threading scenarios...

This is available from trunk Rev. 2823 onwards.

Kind regards,

ChristianK