Последняя оптимизация ресурса
Я пишу Resource Adapter, который не поддерживает двухфазную фиксацию. Я знаю, что есть метод оптимизации, который называется "Последняя оптимизация ресурсов".
В JBoss ваш класс XAResource должен реализовать Last Resource для оптимизации.
Мой вопрос: как это можно сделать в WebLogic, WebSpehre, Glassfish и т. Д...
1 ответ
Weblogic: AFAIK (может быть очень ошибочным), только драйверы JDBC могут использоваться с LRO, и это чисто административная задача. Если драйвер не поддерживает XA, его можно настроить для использования с LRO: "Выберите эту опцию, если вы хотите включить не-XA-соединения JDBC из источника данных для эмуляции участия в глобальных транзакциях с использованием JTA".
По сути, LRO допускает ресурс, который не имеет фазы подготовки и может быть только зафиксирован или откатан. Таким образом, если в XA-транзакции существует только один такой ресурс, мы можем сначала попытаться подготовить все остальные, затем зафиксировать этот LRO один, а затем, в случае успеха, зафиксировать другие, иначе откатить другие.
Видите ли, нет особой необходимости в объявлении какого-либо интерфейса. Это алгоритм, который может работать с любым не-XA ресурсом. Я не уверен, почему JBoss имеет это, но я не ожидаю, что другие серверы имеют что-то подобное.