@Override public MessageStore createQueueMessageStore(ActiveMQQueue destination) throws IOException { MessageStore rc = queues.get(destination); if (rc == null) { rc = new MemoryMessageStore(destination); if (transactionStore != null) { rc = transactionStore.proxy(rc); } queues.put(destination, rc); } return rc; }
@Override public synchronized void addMessage(ConnectionContext context, Message message) throws IOException { super.addMessage(context, message); for (MemoryTopicSub sub : topicSubMap.values()) { sub.addMessage(message.getMessageId(), message); } }
@Override public synchronized void delete() { super.delete(); subscriberDatabase.clear(); topicSubMap.clear(); }
public void removeMessage(MessageId msgId) throws IOException { synchronized (messageTable) { Message removed = messageTable.remove(msgId); if (removed != null) { removed.decrementReferenceCount(); decMessageStoreStatistics(getMessageStoreStatistics(), removed); } if ((lastBatchId != null && lastBatchId.equals(msgId)) || messageTable.isEmpty()) { lastBatchId = null; } } }
@Override public synchronized void addMessage(ConnectionContext context, Message message) throws IOException { synchronized (messageTable) { messageTable.put(message.getMessageId(), message); incMessageStoreStatistics(getMessageStoreStatistics(), message); message.incrementReferenceCount(); message.getMessageId().setFutureOrSequenceLong(sequenceId++); if (indexListener != null) { indexListener.onAdd(new IndexListener.MessageContext(context, message, null)); } } }
@Override public void removeMessage(ConnectionContext context, MessageAck ack) throws IOException { removeMessage(ack.getLastMessageId()); }
@Override public void removeAllMessages(ConnectionContext context) throws IOException { synchronized (messageTable) { messageTable.clear(); getMessageStoreStatistics().reset(); } }
@Override protected void onCacheEviction(Map.Entry<MessageId, Message> eldest) { decMessageStoreStatistics(messageStoreStatistics, eldest.getValue()); // We aren't tracking this anymore so remove our reference to it. eldest.getValue().decrementReferenceCount(); } }
@Override public synchronized void acknowledge(ConnectionContext context, String clientId, String subscriptionName, MessageId messageId, MessageAck ack) throws IOException { super.removeMessage(messageId); SubscriptionKey key = new SubscriptionKey(clientId, subscriptionName); MemoryTopicSub sub = topicSubMap.get(key); if (sub != null) { sub.removeMessage(messageId); } }
public void delete() { synchronized (messageTable) { messageTable.clear(); getMessageStoreStatistics().reset(); } }
public void removeMessage(MessageId msgId) throws IOException { synchronized (messageTable) { Message removed = messageTable.remove(msgId); if (removed != null) { removed.decrementReferenceCount(); decMessageStoreStatistics(getMessageStoreStatistics(), removed); } if ((lastBatchId != null && lastBatchId.equals(msgId)) || messageTable.isEmpty()) { lastBatchId = null; } } }
@Override public synchronized void addMessage(ConnectionContext context, Message message) throws IOException { synchronized (messageTable) { messageTable.put(message.getMessageId(), message); incMessageStoreStatistics(getMessageStoreStatistics(), message); message.incrementReferenceCount(); message.getMessageId().setFutureOrSequenceLong(sequenceId++); if (indexListener != null) { indexListener.onAdd(new IndexListener.MessageContext(context, message, null)); } } }
@Override protected void onCacheEviction(Map.Entry<MessageId, Message> eldest) { decMessageStoreStatistics(messageStoreStatistics, eldest.getValue()); // We aren't tracking this anymore so remove our reference to it. eldest.getValue().decrementReferenceCount(); } }
@Override public void deleteAllMessages() throws IOException { for (Iterator<TopicMessageStore> iter = topics.values().iterator(); iter.hasNext();) { MemoryMessageStore store = asMemoryMessageStore(iter.next()); if (store != null) { store.delete(); } } for (Iterator<MessageStore> iter = queues.values().iterator(); iter.hasNext();) { MemoryMessageStore store = asMemoryMessageStore(iter.next()); if (store != null) { store.delete(); } } if (transactionStore != null) { transactionStore.delete(); } }
@Override public void removeMessage(ConnectionContext context, MessageAck ack) throws IOException { removeMessage(ack.getLastMessageId()); }
@Override public void recoverMessageStoreStatistics() throws IOException { synchronized (messageTable) { long size = 0; int count = 0; for (Message message : messageTable.values()) { size += message.getSize(); } getMessageStoreStatistics().reset(); getMessageStoreStatistics().getMessageCount().setCount(count); getMessageStoreStatistics().getMessageSize().setTotalSize(size); } }
public void removeMessage(MessageId msgId) throws IOException { synchronized (messageTable) { Message removed = messageTable.remove(msgId); if (removed != null) { removed.decrementReferenceCount(); decMessageStoreStatistics(getMessageStoreStatistics(), removed); } if ((lastBatchId != null && lastBatchId.equals(msgId)) || messageTable.isEmpty()) { lastBatchId = null; } } }
@Override public synchronized void addMessage(ConnectionContext context, Message message) throws IOException { synchronized (messageTable) { messageTable.put(message.getMessageId(), message); incMessageStoreStatistics(getMessageStoreStatistics(), message); message.incrementReferenceCount(); message.getMessageId().setFutureOrSequenceLong(sequenceId++); if (indexListener != null) { indexListener.onAdd(new IndexListener.MessageContext(context, message, null)); } } }
@Override public MessageStore createQueueMessageStore(ActiveMQQueue destination) throws IOException { MessageStore rc = queues.get(destination); if (rc == null) { rc = new MemoryMessageStore(destination); if (transactionStore != null) { rc = transactionStore.proxy(rc); } queues.put(destination, rc); } return rc; }
public synchronized void addMessage(ConnectionContext context, Message message) throws IOException { super.addMessage(context, message); for (Iterator<MemoryTopicSub> i = topicSubMap.values().iterator(); i.hasNext();) { MemoryTopicSub sub = i.next(); sub.addMessage(message.getMessageId(), message); } }