У меня есть приложение, которое взаимодействует с несколькими базами данных и некоторыми пользовательскими службами. Для некоторых операций мне нужно поведение, подобное транзакции, когда набор изменений либо фиксируется во всех базах данных / службах, либо все откатывается при возникновении ошибки.
Стандарт XA от группы X / Open и Java JTA, похоже, решают именно эту проблему с помощью двухфазного процесса фиксации. Некоторые базы данных (mySQL, Postgres, Oracle) поддерживают эти интерфейсы, но у меня возникает ощущение, что они не часто используются или их популярность снижается. Это правда? И если да, то почему?
Я знаю, что были некоторые проблемы с репликацией с XA на MySQL. Кроме того, транзакции XA могут быть значительно медленнее. Есть ли другие причины, по которым XA непопулярен / необычен?