groupOwner = messageGroupOwners.get(groupId); if (groupOwner == null) { assignGroup(subscription, messageGroupOwners, node, groupId); messageGroupOwners.removeGroup(groupId); subscription.getConsumerInfo().decrementAssignedGroupCount(destination);
protected void assignGroup(Subscription subs, MessageGroupMap messageGroupOwners, MessageReference n, String groupId) throws IOException { messageGroupOwners.put(groupId, subs.getConsumerInfo().getConsumerId()); Message message = n.getMessage(); message.setJMSXGroupFirstForConsumer(true); subs.getConsumerInfo().incrementAssignedGroupCount(destination); }
/** * @return a Map of groupNames and ConsumerIds */ @Override public Map<String, String> getMessageGroups() { Queue queue = (Queue) destination; return queue.getMessageGroupOwners().getGroups(); }
getMessageGroupOwners().removeConsumer(consumerId);
/** * remove a message group = has the effect of rebalancing group */ @Override public void removeMessageGroup(@MBeanInfo("groupName") String groupName) { Queue queue = (Queue) destination; queue.getMessageGroupOwners().removeGroup(groupName); }
public MessageGroupMap getMessageGroupOwners() { if (messageGroupOwners == null) { messageGroupOwners = getMessageGroupMapFactory().createMessageGroupMap(); messageGroupOwners.setDestination(this); } return messageGroupOwners; }
/** * remove all the message groups - will rebalance all message groups across consumers */ @Override public void removeAllMessageGroups() { Queue queue = (Queue) destination; queue.getMessageGroupOwners().removeAll(); }
/** * @return the message group type implementation (simple,bucket,cached) */ @Override public String getMessageGroupType() { Queue queue = (Queue) destination; return queue.getMessageGroupOwners().getType(); }
getMessageGroupOwners().removeConsumer(consumerId);
/** * remove a message group = has the effect of rebalancing group */ @Override public void removeMessageGroup(@MBeanInfo("groupName") String groupName) { Queue queue = (Queue) destination; queue.getMessageGroupOwners().removeGroup(groupName); }
public MessageGroupMap getMessageGroupOwners() { if (messageGroupOwners == null) { messageGroupOwners = getMessageGroupMapFactory().createMessageGroupMap(); messageGroupOwners.setDestination(this); } return messageGroupOwners; }
/** * remove all the message groups - will rebalance all message groups across consumers */ @Override public void removeAllMessageGroups() { Queue queue = (Queue) destination; queue.getMessageGroupOwners().removeAll(); }
/** * @return the message group type implementation (simple,bucket,cached) */ @Override public String getMessageGroupType() { Queue queue = (Queue) destination; return queue.getMessageGroupOwners().getType(); }
groupOwner = messageGroupOwners.get(groupId); if (groupOwner == null) { assignGroup(subscription, messageGroupOwners, node, groupId); messageGroupOwners.removeGroup(groupId);
/** * Assigns the message group to this subscription and set the flag on the * message that it is the first message to be dispatched. */ protected void assignGroupToMe(MessageGroupMap messageGroupOwners, MessageReference n, String groupId) throws IOException { messageGroupOwners.put(groupId, info.getConsumerId()); Message message = n.getMessage(); if (message instanceof ActiveMQMessage) { ActiveMQMessage activeMessage = (ActiveMQMessage)message; try { activeMessage.setBooleanProperty("JMSXGroupFirstForConsumer", true, false); } catch (JMSException e) { LOG.warn("Failed to set boolean header: " + e, e); } } }
getMessageGroupOwners().removeConsumer(consumerId);
/** * remove a message group = has the effect of rebalancing group */ @Override public void removeMessageGroup(@MBeanInfo("groupName") String groupName) { Queue queue = (Queue) destination; queue.getMessageGroupOwners().removeGroup(groupName); }
/** * @return a Map of groupNames and ConsumerIds */ @Override public Map<String, String> getMessageGroups() { Queue queue = (Queue) destination; return queue.getMessageGroupOwners().getGroups(); }
public MessageGroupMap getMessageGroupOwners() { if (messageGroupOwners == null) { messageGroupOwners = getMessageGroupMapFactory().createMessageGroupMap(); messageGroupOwners.setDestination(this); } return messageGroupOwners; }
/** * remove all the message groups - will rebalance all message groups across consumers */ @Override public void removeAllMessageGroups() { Queue queue = (Queue) destination; queue.getMessageGroupOwners().removeAll(); }