MySQL/MariaDB

Transaction Isolation

Mendix uses the Read Committed transaction isolation level by default starting with the release of 6.10.6 (for version 6; for Mendix 7, usage is from Mendix 7.2). Only row-based logging can be used in the case of this transaction isolation level. You should set the binlog_format database configuration value to ROW or MIXED. For more information, see the details on binlog_formathere and here.

The SAVEPOINT Exception Does Not Exist

In the case of the “SAVEPOINT unnamed does not exist” exception, a deadlock has occurred. Mendix cannot correctly handle this situation, because MySQL/MariaDB automatically rolls back the transaction and removes all the save points for that transaction. Mendix tries to roll back to a specific save point, but that is not allowed anymore by MySQL and MariaDB. Avoiding deadlocks by keeping transactions as short as possible is advised.

In Mendix, DateTimes are stored in the UTC time zone. For these functions to work correctly, it is important that the database supports converting dates and times from UTC to another time zone. If this is not possible, the functions will operate on the date and time in the UTC time zone. That can lead to incorrect results if the user expects the date to work in their time zone.

MySQL does not fully support time zone conversion out-of-the-box. You have to fill in some time zone tables (for more details, see 10.6 MySQL Server Time Zone Support). However, if you do not use the previously mentioned functions in your queries or if you always want to work with UTC dates and times, then it is not necessary to configure your MySQL database for this.

MariaDB supports an identical configuration for time zone conversions.