}
public void prepare(TransactionId txid) throws IOException {
store(new KahaPrepareCommand().setTransactionInfo(createTransactionInfo(txid)), true);
}
public void rollback(TransactionId txid) throws IOException {
store(new KahaRollbackCommand().setTransactionInfo(createTransactionInfo(txid)), false);
}
public void recover(TransactionRecoveryListener listener) throws IOException {
for (Map.Entry<TransactionId, ArrayList<Operation>> entry : preparedTransactions.entrySet()) {
XATransactionId xid = (XATransactionId)entry.getKey();
ArrayList<Message> messageList = new ArrayList<Message>();