Ignite Factory игнорируетсяJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Ignite Factory игнорируется

Сообщение Anonymous »

Я пытаюсь установить внешний менеджер транзакций для Ignite Cache, однако оказывается, что Factory игнорируется и create не вызывается...
Реализация Factory:

Код: Выделить всё

public class TransactionManagerFactory implements Factory {
private static final long serialVersionUID = 1L;
private transient IgniteCache igniteCache;

public TransactionManagerFactory(IgniteCache igniteCache) {
this.igniteCache=igniteCache;
}

@Override
public TransactionManager create() {
return this.igniteCache.getTransactionManager();
}
}
Конфигурация клиента транзакции Ignite установлена ​​следующая:

Код: Выделить всё

TransactionConfiguration txConfiguration=new TransactionConfiguration();
txConfiguration.setDeadlockTimeout(acquireTimeout);
txConfiguration.setDefaultTxIsolation(TransactionIsolation.READ_COMMITTED);
txConfiguration.setDefaultTxConcurrency(TransactionConcurrency.PESSIMISTIC);
TransactionManagerFactory txFactory=new TransactionManagerFactory(this);
txConfiguration.setTxManagerFactory(txFactory);
this.clientConfig.setTransactionConfiguration(txConfiguration);
Кэш создается как:

Код: Выделить всё

CacheConfiguration cacheCfg = new CacheConfiguration(this.name);
cacheCfg.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
cacheCfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL);
this.cache = this.instance.getOrCreateCache(cacheCfg);
Однако, когда в тестах кеш создается и подключается к удаленному узлу, а транзакция создается путем вызова transactionManager.begin();
Instance.transactions().tx() возвращает значение null , а transactionManager.getTransaction() возвращает TransactionImpl{xid=Xid{formatId=1, globalTransactionId=8EA3F99497B60948C0E22AEBA1F54C46000000000000002,branchQualifier=8EA3F99497B60948C0E22AEBA1F54C46000 0000000000002}, status=ACTIVE
И всякий раз, когда транзакция повторяется назад, записанные элементы сохраняются в кеше.
Кроме того, TransactionManagerFactory.create никогда не выполняется.
Как я могу правильно интегрировать внешний менеджер транзакций с кешем Ignite?

Подробнее здесь: https://stackoverflow.com/questions/660 ... is-ignored
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»