- private ActorRef createTransaction(int transactionType, String remoteTransactionId,
- String transactionChainId, short clientVersion) {
-
-
- ShardTransactionIdentifier transactionId = new ShardTransactionIdentifier(remoteTransactionId);
-
- if(LOG.isDebugEnabled()) {
- LOG.debug("{}: Creating transaction : {} ", persistenceId(), transactionId);
- }
-
- ActorRef transactionActor = createTypedTransactionActor(transactionType, transactionId,
- transactionChainId, clientVersion);
-
- return transactionActor;
- }
-
- private void syncCommitTransaction(final DOMStoreWriteTransaction transaction)
- throws ExecutionException, InterruptedException {
- DOMStoreThreePhaseCommitCohort commitCohort = transaction.ready();
- commitCohort.preCommit().get();
- commitCohort.commit().get();
- }
-
- private void commitWithNewTransaction(final Modification modification) {
- DOMStoreWriteTransaction tx = store.newWriteOnlyTransaction();
- modification.apply(tx);
- try {
- syncCommitTransaction(tx);
- shardMBean.incrementCommittedTransactionCount();
- shardMBean.setLastCommittedTransactionTime(System.currentTimeMillis());
- } catch (InterruptedException | ExecutionException e) {
- shardMBean.incrementFailedTransactionsCount();
- LOG.error("{}: Failed to commit", persistenceId(), e);
- }
+ private ActorRef createTransaction(final int transactionType, final TransactionIdentifier transactionId) {
+ LOG.debug("{}: Creating transaction : {} ", persistenceId(), transactionId);
+ return transactionActorFactory.newShardTransaction(TransactionType.fromInt(transactionType),
+ transactionId);