@Override public synchronized void recover(TransactionRecoveryListener listener) throws IOException { // All the inflight transactions get rolled back.. inflightTransactions.clear(); this.doingRecover = true; try { for (Iterator<TransactionId> iter = preparedTransactions.keySet().iterator(); iter.hasNext();) { Object txid = iter.next(); Tx tx = preparedTransactions.get(txid); listener.recover((XATransactionId) txid, tx.getMessages(), tx.getAcks()); onRecovered(tx); } } finally { this.doingRecover = false; } }
public synchronized void recover(TransactionRecoveryListener listener) throws IOException { // All the in-flight transactions get rolled back.. synchronized (inflightTransactions) { inflightTransactions.clear(); } this.doingRecover = true; try { Map<TransactionId, Tx> txs = null; synchronized (preparedTransactions) { txs = new LinkedHashMap<TransactionId, Tx>(preparedTransactions); } for (Iterator<TransactionId> iter = txs.keySet().iterator(); iter.hasNext();) { Object txid = iter.next(); Tx tx = txs.get(txid); listener.recover((XATransactionId)txid, tx.getMessages(), tx.getAcks()); } } finally { this.doingRecover = false; } }
@Override public void recover(XATransactionId xid, Message[] addedMessages, MessageAck[] acks) { try { getTx(xid).trackStore(adapter.createTransactionStore(), xid); } catch (IOException e) { LOG.error("Failed to access transaction store: " + adapter + " for prepared xa tid: " + xid, e); } listener.recover(xid, addedMessages, acks); } });
@Override 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>(); ArrayList<MessageAck> ackList = new ArrayList<MessageAck>(); for (Operation op : entry.getValue()) { if( op.getClass() == AddOpperation.class ) { AddOpperation addOp = (AddOpperation)op; Message msg = (Message)wireFormat.unmarshal( new DataInputStream(addOp.getCommand().getMessage().newInput()) ); messageList.add(msg); } else { RemoveOpperation rmOp = (RemoveOpperation)op; MessageAck ack = (MessageAck)wireFormat.unmarshal( new DataInputStream(rmOp.getCommand().getAck().newInput()) ); ackList.add(ack); } } Message[] addedMessages = new Message[messageList.size()]; MessageAck[] acks = new MessageAck[ackList.size()]; messageList.toArray(addedMessages); ackList.toArray(acks); listener.recover(xid, addedMessages, acks); } } @Override
@Override public synchronized void recover(TransactionRecoveryListener listener) throws IOException { for (Map.Entry<TransactionId, List<Operation>> entry : theStore.preparedTransactions.entrySet()) { XATransactionId xid = (XATransactionId) entry.getKey(); ArrayList<Message> messageList = new ArrayList<Message>(); ArrayList<MessageAck> ackList = new ArrayList<MessageAck>(); for (Operation op : entry.getValue()) { if (op.getClass() == MessageDatabase.AddOperation.class) { MessageDatabase.AddOperation addOp = (MessageDatabase.AddOperation) op; Message msg = (Message) wireFormat().unmarshal(new DataInputStream(addOp.getCommand().getMessage() .newInput())); messageList.add(msg); } else { MessageDatabase.RemoveOperation rmOp = (MessageDatabase.RemoveOperation) op; Buffer ackb = rmOp.getCommand().getAck(); MessageAck ack = (MessageAck) wireFormat().unmarshal(new DataInputStream(ackb.newInput())); ackList.add(ack); } } Message[] addedMessages = new Message[messageList.size()]; MessageAck[] acks = new MessageAck[ackList.size()]; messageList.toArray(addedMessages); ackList.toArray(acks); xid.setPreparedAcks(ackList); theStore.trackRecoveredAcks(ackList); listener.recover(xid, addedMessages, acks); } }
public synchronized void recover(TransactionRecoveryListener listener) throws IOException { for (Iterator i = prepared.entrySet().iterator(); i.hasNext();) { Map.Entry entry = (Entry)i.next(); XATransactionId xid = (XATransactionId)entry.getKey(); KahaTransaction kt = (KahaTransaction)entry.getValue(); listener.recover(xid, kt.getMessages(), kt.getAcks()); } }
public synchronized void recover(TransactionRecoveryListener listener) throws IOException { // All the inflight transactions get rolled back.. inflightTransactions.clear(); this.doingRecover = true; try { for (Iterator<TransactionId> iter = preparedTransactions.keySet().iterator(); iter.hasNext();) { Object txid = iter.next(); Tx tx = preparedTransactions.get(txid); listener.recover((XATransactionId)txid, tx.getMessages(), tx.getAcks()); } } finally { this.doingRecover = false; } }
public synchronized void recover(TransactionRecoveryListener listener) throws IOException { // All the in-flight transactions get rolled back.. synchronized (inflightTransactions) { inflightTransactions.clear(); } this.doingRecover = true; try { Map<TransactionId, Tx> txs = null; synchronized (preparedTransactions) { txs = new LinkedHashMap<TransactionId, Tx>(preparedTransactions); } for (Iterator<TransactionId> iter = txs.keySet().iterator(); iter.hasNext();) { Object txid = iter.next(); Tx tx = txs.get(txid); listener.recover((XATransactionId)txid, tx.getMessages(), tx.getAcks()); } } finally { this.doingRecover = false; } }
public synchronized void recover(TransactionRecoveryListener listener) throws IOException { // All the in-flight transactions get rolled back.. synchronized (inflightTransactions) { inflightTransactions.clear(); } this.doingRecover = true; try { Map<TransactionId, Tx> txs = null; synchronized (preparedTransactions) { txs = new LinkedHashMap<TransactionId, Tx>(preparedTransactions); } for (Iterator<TransactionId> iter = txs.keySet().iterator(); iter.hasNext();) { Object txid = iter.next(); Tx tx = txs.get(txid); listener.recover((XATransactionId)txid, tx.getMessages(), tx.getAcks()); } } finally { this.doingRecover = false; } }
public synchronized void recover(TransactionRecoveryListener listener) throws IOException { // All the in-flight transactions get rolled back.. synchronized (inflightTransactions) { inflightTransactions.clear(); } this.doingRecover = true; try { Map<TransactionId, Tx> txs = null; synchronized (preparedTransactions) { txs = new LinkedHashMap<TransactionId, Tx>(preparedTransactions); } for (Iterator<TransactionId> iter = txs.keySet().iterator(); iter.hasNext();) { Object txid = iter.next(); Tx tx = txs.get(txid); listener.recover((XATransactionId)txid, tx.getMessages(), tx.getAcks()); } } finally { this.doingRecover = false; } }
public synchronized void recover(TransactionRecoveryListener listener) throws IOException { // All the in-flight transactions get rolled back.. synchronized (inflightTransactions) { inflightTransactions.clear(); } this.doingRecover = true; try { Map<TransactionId, AMQTx> txs = null; synchronized (preparedTransactions) { txs = new LinkedHashMap<TransactionId, AMQTx>(preparedTransactions); } for (Iterator<TransactionId> iter = txs.keySet().iterator(); iter.hasNext();) { Object txid = iter.next(); AMQTx tx = txs.get(txid); listener.recover((XATransactionId)txid, tx.getMessages(), tx.getAcks()); } } finally { this.doingRecover = false; } }
public synchronized void recover(TransactionRecoveryListener listener) throws IOException { // All the in-flight transactions get rolled back.. synchronized (inflightTransactions) { inflightTransactions.clear(); } this.doingRecover = true; try { Map<TransactionId, Tx> txs = null; synchronized (preparedTransactions) { txs = new LinkedHashMap<TransactionId, Tx>(preparedTransactions); } for (Iterator<TransactionId> iter = txs.keySet().iterator(); iter.hasNext();) { Object txid = iter.next(); Tx tx = txs.get(txid); listener.recover((XATransactionId)txid, tx.getMessages(), tx.getAcks()); } } finally { this.doingRecover = false; } }
@Override public synchronized void recover(TransactionRecoveryListener listener) throws IOException { // All the inflight transactions get rolled back.. inflightTransactions.clear(); this.doingRecover = true; try { for (Iterator<TransactionId> iter = preparedTransactions.keySet().iterator(); iter.hasNext();) { Object txid = iter.next(); Tx tx = preparedTransactions.get(txid); listener.recover((XATransactionId) txid, tx.getMessages(), tx.getAcks()); onRecovered(tx); } } finally { this.doingRecover = false; } }
@Override public synchronized void recover(TransactionRecoveryListener listener) throws IOException { // All the inflight transactions get rolled back.. inflightTransactions.clear(); this.doingRecover = true; try { for (Iterator<TransactionId> iter = preparedTransactions.keySet().iterator(); iter.hasNext();) { Object txid = iter.next(); Tx tx = preparedTransactions.get(txid); listener.recover((XATransactionId) txid, tx.getMessages(), tx.getAcks()); onRecovered(tx); } } finally { this.doingRecover = false; } }
@Override public synchronized void recover(TransactionRecoveryListener listener) throws IOException { // All the inflight transactions get rolled back.. inflightTransactions.clear(); this.doingRecover = true; try { for (Iterator<TransactionId> iter = preparedTransactions.keySet().iterator(); iter.hasNext();) { Object txid = iter.next(); Tx tx = preparedTransactions.get(txid); listener.recover((XATransactionId) txid, tx.getMessages(), tx.getAcks()); onRecovered(tx); } } finally { this.doingRecover = false; } }
@Override public void recover(XATransactionId xid, Message[] addedMessages, MessageAck[] acks) { try { getTx(xid).trackStore(adapter.createTransactionStore()); } catch (IOException e) { LOG.error("Failed to access transaction store: " + adapter + " for prepared xa tid: " + xid, e); } listener.recover(xid, addedMessages, acks); } });
@Override public void recover(XATransactionId xid, Message[] addedMessages, MessageAck[] acks) { try { getTx(xid).trackStore(adapter.createTransactionStore()); } catch (IOException e) { LOG.error("Failed to access transaction store: " + adapter + " for prepared xa tid: " + xid, e); } listener.recover(xid, addedMessages, acks); } });
@Override public void recover(XATransactionId xid, Message[] addedMessages, MessageAck[] acks) { try { getTx(xid).trackStore(adapter.createTransactionStore()); } catch (IOException e) { LOG.error("Failed to access transaction store: " + adapter + " for prepared xa tid: " + xid, e); } listener.recover(xid, addedMessages, acks); } });
@Override 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>(); ArrayList<MessageAck> ackList = new ArrayList<MessageAck>(); for (Operation op : entry.getValue()) { if( op.getClass() == AddOpperation.class ) { AddOpperation addOp = (AddOpperation)op; Message msg = (Message)wireFormat.unmarshal( new DataInputStream(addOp.getCommand().getMessage().newInput()) ); messageList.add(msg); } else { RemoveOpperation rmOp = (RemoveOpperation)op; MessageAck ack = (MessageAck)wireFormat.unmarshal( new DataInputStream(rmOp.getCommand().getAck().newInput()) ); ackList.add(ack); } } Message[] addedMessages = new Message[messageList.size()]; MessageAck[] acks = new MessageAck[ackList.size()]; messageList.toArray(addedMessages); ackList.toArray(acks); listener.recover(xid, addedMessages, acks); } } @Override
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>(); ArrayList<MessageAck> ackList = new ArrayList<MessageAck>(); for (Operation op : entry.getValue()) { if( op.getClass() == AddOpperation.class ) { AddOpperation addOp = (AddOpperation)op; Message msg = (Message)wireFormat.unmarshal( new DataInputStream(addOp.getCommand().getMessage().newInput()) ); messageList.add(msg); } else { RemoveOpperation rmOp = (RemoveOpperation)op; MessageAck ack = (MessageAck)wireFormat.unmarshal( new DataInputStream(rmOp.getCommand().getAck().newInput()) ); ackList.add(ack); } } Message[] addedMessages = new Message[messageList.size()]; MessageAck[] acks = new MessageAck[ackList.size()]; messageList.toArray(addedMessages); ackList.toArray(acks); listener.recover(xid, addedMessages, acks); } } public void start() throws Exception {