DB Transaction Timeouts

how can I find the source of DB Txn timeouts? I am getting a lot of timeouts but the gateway does not seem to show me the source…

You could look through your projects with Find/Replace, looking for any calls to system.db.beginTransaction

I don’t think there’s any loggers that would indicate when the transaction is started, since nothing actually executes against the database directly. You could try TxTimeoutDaemon on TRACE, but it probably doesn’t log anything besides the warnings.

Yes, I thought of that, but there are multiple projects and scripts using txns, so it’s almost impossible to trace it without at least knowing what project. It doesn’t seem to be doing any harm, but I would rather my logs not fill up…

Is there a magnifying glass icon to the right of your screenshot? If so, that should have the MDC keys that say where it originated. If not, sounds like we need to add some.

Nope… every once and awhile I get one warning that has it (alarming is the originator), but the others have no magnifying glass

Your best bet is probably to write your own wrapper for system.db.beginTransaction in a shared script.

Then you can replace the references to system.db.beginTransaction with your custom wrapper. A fully automated find-replace per project could be fine if your signature is the same and you use the full “system.db” prefix everywhere. After that, you can log what you want inside the wrapper.

Once you have this wrapper in place, and it’s used everywhere, it will also be easier to catch these types of problems in the future. So it may be best to keep using this wrapper.

I do hope in the future to see plain-text exports of projects (instead of or next to the base-64 encoded windows). This would enable us to use much better text-based tools, like searching with ack.

1 Like