package org.infinispan.commands.tx.totalorder; import org.infinispan.commands.tx.RollbackCommand; import org.infinispan.transaction.impl.RemoteTransaction; import org.infinispan.transaction.xa.GlobalTransaction; import org.infinispan.util.ByteString; import org.infinispan.util.logging.Log; import org.infinispan.util.logging.LogFactory; /** * The 2nd phase command of 2PC, used when a transaction must be aborted. This implementation is used when Total Order * based protocol is used * * @author Pedro Ruivo * @since 5.3 */ public class TotalOrderRollbackCommand extends RollbackCommand { public static final byte COMMAND_ID = 37; private static final Log log = LogFactory.getLog(TotalOrderRollbackCommand.class); public TotalOrderRollbackCommand(ByteString cacheName, GlobalTransaction globalTransaction) { super(cacheName, globalTransaction); } public TotalOrderRollbackCommand(ByteString cacheName) { super(cacheName); } private TotalOrderRollbackCommand() { super(null); // For command id uniqueness test } @Override public byte getCommandId() { return COMMAND_ID; } @Override protected RemoteTransaction getRemoteTransaction() { return txTable.getOrCreateRemoteTransaction(globalTx, null); } }