+ private FrontendTransaction createTransaction(final TransactionRequest<?> request, final TransactionIdentifier id)
+ throws RequestException {
+ if (request instanceof CommitLocalTransactionRequest) {
+ LOG.debug("{}: allocating new ready transaction {}", persistenceId(), id);
+ return createReadyTransaction(id, ((CommitLocalTransactionRequest) request).getModification());
+ }
+ if (request instanceof AbstractReadTransactionRequest) {
+ if (((AbstractReadTransactionRequest<?>) request).isSnapshotOnly()) {
+ LOG.debug("{}: allocatint new open snapshot {}", persistenceId(), id);
+ return createOpenSnapshot(id);
+ }
+ }
+
+ LOG.debug("{}: allocating new open transaction {}", persistenceId(), id);
+ return createOpenTransaction(id);
+ }
+
+ abstract FrontendTransaction createOpenSnapshot(TransactionIdentifier id) throws RequestException;
+