Последняя оптимизация ресурса - PullRequest
1 голос
/ 25 сентября 2008

Я пишу Resource Adapter, который не поддерживает двухфазную фиксацию. Я знаю, что есть метод оптимизации, который называется: «Последняя оптимизация ресурсов».

В JBoss ваш класс XAResource должен реализовать LastResource для оптимизации.

Мой вопрос: как это можно сделать в WebLogic, WebSpehre, Glassfish и т. Д ...

1 Ответ

6 голосов
/ 25 сентября 2008

Weblogic: AFAIK (может быть, очень неправильно) с LRO могут использоваться только драйверы JDBC, и это чисто административная задача . Если драйвер не поддерживает XA, его можно настроить для использования с LRO: "Выберите этот параметр, если вы хотите включить не-XA-соединения JDBC из источника данных для эмуляции участия в глобальных транзакциях с использованием JTA" .

По сути, LRO допускает ресурс, который не имеет фазы подготовки и может быть только зафиксирован или откатан. Таким образом, если в XA-транзакции существует только один такой ресурс, мы можем сначала попытаться подготовить все остальные, затем зафиксировать этот LRO один, а затем, в случае успеха, зафиксировать другие, иначе откатить другие.

Видите ли, особой необходимости в объявлении какого-либо интерфейса нет. Это алгоритм, который может работать с любым не-XA ресурсом. Я не уверен, почему JBoss имеет это, но я не ожидаю, что другие серверы имеют что-то подобное.

...