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