Как узнать, где может происходить COMMIT? - PullRequest
0 голосов
/ 11 ноября 2009

Я выполняю рефакторинг некоторого кода, преобразуя ряд связанных обновлений в одну транзакцию.

Это использует JDBC, MySQL, InnoDB.

Я полагаю, что где-то в (довольно большой и недокументированной) библиотеке или коде приложения все еще происходит нежелательный COMMIT

Какой самый простой способ узнать, где это происходит?

Должен быть какой-то неявный коммит, потому что я не нахожу никаких операторов COMMIT.

Ответы [ 2 ]

1 голос
/ 11 ноября 2009

Проверьте на этой странице в документации по MySQL для операторов, которые вызывают неявную фиксацию.

Кроме того, поскольку вы используете JDBC, убедитесь, что autocommit имеет значение false, как в

connection.setAutoCommit(false);
0 голосов
/ 11 ноября 2009

Я не эксперт по mysql, но должна быть возможность записывать все выполненные операторы в файл и / или консоль. Это, вероятно, поможет. Если вы можете отлаживать с помощью точек останова кодового набора непосредственно перед известными вам коммитами, а затем посмотрите на зарегистрированные операторы. Таким образом, вы, вероятно, увидите, есть ли нежелательный коммит или нет.

...