public interface XAResource
Интерфейс XAResource является отображением Java промышленного стандарта интерфейс XA, основанный на Спецификации CAE X/Open (Распределенная обработка транзакций: Спецификация XA).
Интерфейс XA определяет контракт между Менеджером ресурсов и Менеджером транзакций в распределенной обработке транзакций (DTP) среда. Драйвер JDBC или провайдер JMS реализуют этот интерфейс, чтобы поддерживать ассоциацию между глобальной транзакцией и базой данных или соединением службы сообщения.
Интерфейс XAResource может поддерживаться любым транзакционным ресурсом, который предназначается, чтобы использоваться прикладными программами в среде, где транзакциями управляет внешний менеджер транзакций. Примером такого ресурса является система управления базами данных. Приложение может получить доступ к данным посредством многократных соединений с базой данных. Каждое соединение с базой данных включается в список с менеджером транзакций как транзакционный ресурс. Менеджер транзакций получает XAResource для каждого соединения, участвующего в глобальной транзакции. Менеджер транзакций использует start
метод, чтобы связать глобальную транзакцию с ресурсом, и это использует end
метод, чтобы разъединить транзакцию с ресурсом. Менеджер ресурсов ответственен за соединение глобальной транзакции ко всей работе, выполняемой на ее данных между вызовами метода конца и запуском.
Во время фиксации транзакции менеджерам ресурсов сообщает менеджер транзакций, чтобы подготовить, фиксировать, или откатывать транзакцию согласно протоколу двухфазной фиксации.
Модификатор и Тип | Поле и Описание |
---|---|
static int |
TMENDRSCAN
Заканчивает сканирование восстановления.
|
static int |
TMFAIL
Разъединяет вызывающую сторону и отмечает ответвление транзакции, только для отката.
|
static int |
TMJOIN
Вызывающая сторона присоединяется к существующему ответвлению транзакции.
|
static int |
TMNOFLAGS
Используйте TMNOFLAGS, чтобы указать, что никакое значение флагов не выбирается.
|
static int |
TMONEPHASE
Вызывающая сторона использует однофазную оптимизацию.
|
static int |
TMRESUME
Вызывающая сторона возобновляет ассоциацию с приостановленным ответвлением транзакции.
|
static int |
TMSTARTRSCAN
Запускает сканирование восстановления.
|
static int |
TMSUCCESS
Разъединяет вызывающую сторону с ответвлением транзакции.
|
static int |
TMSUSPEND
Вызывающая сторона приостанавливает (не заканчивающийся) ее ассоциация ответвлением транзакции.
|
static int |
XA_OK
Работа транзакции обычно готовилась.
|
static int |
XA_RDONLY
Ответвление транзакции было только для чтения и фиксировалось.
|
Модификатор и Тип | Метод и Описание |
---|---|
void |
commit(Xid xid, boolean onePhase)
Фиксирует глобальную транзакцию, определенную xid.
|
void |
end(Xid xid, int flags)
Заканчивает работу, выполняемую от имени ответвления транзакции.
|
void |
forget(Xid xid)
Говорит менеджеру ресурсов забывать об эвристическим образом завершенном ответвлении транзакции.
|
int |
getTransactionTimeout()
Получает текущий набор значений тайм-аута транзакции для этого экземпляра XAResource.
|
boolean |
isSameRM(XAResource xares)
Этот метод вызывают, чтобы определить, является ли экземпляр менеджера ресурсов, представленный целевым объектом, тем же самым как resouce экземпляром менеджера, представленным параметром xares.
|
int |
prepare(Xid xid)
Попросите, чтобы менеджер ресурсов подготовился к фиксации транзакции транзакции, определенной в xid.
|
Xid[] |
recover(int flag)
Получает список готовых ответвлений транзакции от менеджера ресурсов.
|
void |
rollback(Xid xid)
Сообщает менеджеру ресурсов, чтобы откатывать работу, сделанную от имени ответвления транзакции.
|
boolean |
setTransactionTimeout(int seconds)
Устанавливает текущее значение тайм-аута транзакции для этого
XAResource экземпляр. |
void |
start(Xid xid, int flags)
Запускает работу от имени ответвления транзакции, определенного в
xid . |
static final int TMENDRSCAN
static final int TMFAIL
static final int TMJOIN
static final int TMNOFLAGS
static final int TMONEPHASE
static final int TMRESUME
static final int TMSTARTRSCAN
static final int TMSUCCESS
static final int TMSUSPEND
static final int XA_RDONLY
static final int XA_OK
void commit(Xid xid, boolean onePhase) throws XAException
xid
- Глобальный идентификатор транзакцииonePhase
- Если это правда, менеджер ресурсов должен использовать однофазный протокол фиксации, чтобы фиксировать работу, сделанную от имени xid.XAException
- Ошибка произошла. Возможные XAExceptions являются XA_HEURHAZ, XA_HEURCOM, XA_HEURRB, XA_HEURMIX, XAER_RMERR, XAER_RMFAIL, XAER_NOTA, XAER_INVAL, или XAER_PROTO. Если менеджер ресурсов не фиксировал транзакцию, и paramether однофазное устанавливается в истину, менеджер ресурсов может выдать одно из исключений XA_RB*. По возврату менеджер ресурсов откатывал работу ответвления и высвободил все сохраненные средства.
void end(Xid xid, int flags) throws XAException
Если TMSUSPEND определяется во флагах, ответвление транзакции временно приостанавливается в неполном состоянии. Контекст транзакции находится в состоянии ожидания и должен быть возобновлен через start
метод с определенным TMRESUME.
Если TMFAIL определяется, часть работы перестала работать. Менеджер ресурсов может отметить транзакцию как только для отката
Если TMSUCCESS определяется, часть работы завершилась успешно.
xid
- Глобальный идентификатор транзакции, который является тем же самым как идентификатором, используемым ранее в start
метод.flags
- Один из TMSUCCESS, TMFAIL, или TMSUSPEND.XAException
- Ошибка произошла. Возможные значения XAException являются XAER_RMERR, XAER_RMFAILED, XAER_NOTA, XAER_INVAL, XAER_PROTO, или XA_RB*.void forget(Xid xid) throws XAException
xid
- Глобальный идентификатор транзакции.XAException
- Ошибка произошла. Возможные значения исключения являются XAER_RMERR, XAER_RMFAIL, XAER_NOTA, XAER_INVAL, или XAER_PROTO.int getTransactionTimeout() throws XAException
XAResource.setTransactionTimeout
не использовался до вызова этого метода, возвращаемое значение является набором тайм-аута значения по умолчанию для менеджера ресурсов; иначе, значение используется в предыдущем setTransactionTimeout
вызов возвращается.XAException
- Ошибка произошла. Возможные значения исключения являются XAER_RMERR и XAER_RMFAIL.boolean isSameRM(XAResource xares) throws XAException
xares
- XAResource возражает, чей экземпляр менеджера ресурсов должен быть по сравнению с экземпляром менеджера ресурсов целевого объекта.XAException
- Ошибка произошла. Возможные значения исключения являются XAER_RMERR и XAER_RMFAIL.int prepare(Xid xid) throws XAException
xid
- Глобальный идентификатор транзакции.XAException
- Ошибка произошла. Возможные значения исключения: XA_RB *, XAER_RMERR, XAER_RMFAIL, XAER_NOTA, XAER_INVAL, или XAER_PROTO.Xid[] recover(int flag) throws XAException
flag
- Один из TMSTARTRSCAN, TMENDRSCAN, TMNOFLAGS. TMNOFLAGS должен использоваться, когда никакие другие флаги не устанавливаются в параметре.XAException
- Ошибка произошла. Возможные значения являются XAER_RMERR, XAER_RMFAIL, XAER_INVAL, и XAER_PROTO.void rollback(Xid xid) throws XAException
xid
- Глобальный идентификатор транзакции.XAException
- Ошибка произошла.boolean setTransactionTimeout(int seconds) throws XAException
Устанавливает текущее значение тайм-аута транзакции для этого XAResource
экземпляр. После того, как набор, это значение тайм-аута не эффективно до setTransactionTimeout
вызывается снова с различным значением. Чтобы сбросить значение тайм-аута к значению по умолчанию, используемому менеджером ресурсов, обнулите значение. Если работа тайм-аута выполняется успешно, метод возвращает true; иначе ложь. Если менеджер ресурсов не поддерживает явно установку значения тайм-аута транзакции, этот метод возвращает false.
seconds
- В секундах тайм-аут транзакции оценивает.XAException
- Ошибка произошла. Возможные значения исключения являются XAER_RMERR, XAER_RMFAIL, или XAER_INVAL.void start(Xid xid, int flags) throws XAException
xid
. Если TMJOIN определяется, запуск применяется к присоединению к транзакции, ранее замеченной менеджером ресурсов. Если TMRESUME определяется, запуск применяется к возобновлению приостановленной транзакции, определенной в параметре xid
. Если ни TMJOIN, ни TMRESUME не определяются и транзакция, определенная xid
был ранее замечен менеджером ресурсов, менеджер ресурсов выдает исключение XAException с кодом ошибки XAER_DUPID.xid
- Глобальный идентификатор транзакции, который будет связан с ресурсом.flags
- Один из TMNOFLAGS, TMJOIN, или TMRESUME.XAException
- Ошибка произошла. Возможные исключения являются XA_RB *, XAER_RMERR, XAER_RMFAIL, XAER_DUPID, XAER_OUTSIDE, XAER_NOTA, XAER_INVAL, или XAER_PROTO.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92