Если XAResource является единственным ресурсом, участвующим в передаче, должен ли быть вызван XAResource.prepare () - PullRequest
0 голосов
/ 23 января 2011

Я пробую кое-что с JOTM и у меня есть вопросы общего назначения о том, как все работает.Я перечислил последовательность событий, чтобы получить окончательную сводку о том, что происходит.

  1. create tx
  2. подключить ресурс
  3. tx.commit
  4. resource.start
  5. resource.end
  6. resource.commit

Почему resource.prepare никогда не вызывается и флаг commit (onephase) имеет значение true.Это предполагаемое поведение для таких случаев использования?

1 Ответ

1 голос
/ 24 января 2011

Почему resource.prepare никогда не вызывается, а флаг для фиксации (однофазный) равен true

Раздел спецификации XA 2.3.2:

Однофазный коммит ATM может использовать однофазную фиксацию, если знает, что в системе DTP есть только один RM, который вносит изменения в общие ресурсы.При этой оптимизации TM делает свой запрос на принятие фазы 2, не выполнив запрос на подготовку фазы 1.

Это предполагаемое поведение для таких вариантов использования?

да

...