@Override protected DemandSubscription createDemandSubscription(ConsumerInfo info) throws IOException { if (addToAlreadyInterestedConsumers(info, false)) { return null; // don't want this subscription added } //add our original id to ourselves info.addNetworkConsumerId(info.getConsumerId()); info.setSelector(null); return doCreateDemandSubscription(info); }
@Override protected void removeDemandSubscription(ConsumerId id) throws IOException { List<DemandSubscription> tmpList = new ArrayList<DemandSubscription>(); for (DemandSubscription ds : subscriptionMapByLocalId.values()) { if (ds.remove(id)) { LOG.debug("{} on {} from {} removed interest for: {} from {}", new Object[]{ configuration.getBrokerName(), localBroker, remoteBrokerName, id, ds }); } if (ds.isEmpty()) { tmpList.add(ds); } } for (DemandSubscription ds : tmpList) { removeSubscription(ds); LOG.debug("{} on {} from {} removed {}", new Object[]{ configuration.getBrokerName(), localBroker, remoteBrokerName, ds }); } } }
super.setupStaticDestinations(); ActiveMQDestination[] dests = configuration.isDynamicOnly() ? null : durableDestinations; if (dests != null) {
if (canConduit(ds) && filter.matches(info.getDestination())) { LOG.debug("{} {} with ids {} matched (add interest) {}", new Object[]{ configuration.getBrokerName(), info, info.getNetworkConsumerIds(), ds if (isProxyNSConsumerBrokerPath(info) && info.getSubscriptionName() != null && info.getSubscriptionName().startsWith(DURABLE_SUB_PREFIX)) { final BrokerId[] path = info.getBrokerPath(); addProxyNetworkSubscriptionBrokerPath(ds, path, info.getSubscriptionName()); } else if (isProxyNSConsumerClientId(info.getClientId()) && isProxyBridgeSubscription(info.getClientId(), info.getSubscriptionName())) { addProxyNetworkSubscriptionClientId(ds, info.getClientId(), info.getSubscriptionName()); } else { ds.getDurableRemoteSubs().add(new SubscriptionInfo(info.getClientId(), info.getSubscriptionName()));
if (canConduit(ds) && filter.matches(info.getDestination())) { LOG.debug("{} {} with ids {} matched (add interest) {}", new Object[]{ configuration.getBrokerName(), info, info.getNetworkConsumerIds(), ds if (isProxyNSConsumerBrokerPath(info) && info.getSubscriptionName() != null && info.getSubscriptionName().startsWith(DURABLE_SUB_PREFIX)) { final BrokerId[] path = info.getBrokerPath(); addProxyNetworkSubscriptionBrokerPath(ds, path, info.getSubscriptionName()); } else if (isProxyNSConsumerClientId(info.getClientId()) && isProxyBridgeSubscription(info.getClientId(), info.getSubscriptionName())) { addProxyNetworkSubscriptionClientId(ds, info.getClientId(), info.getSubscriptionName()); } else { ds.getDurableRemoteSubs().add(new SubscriptionInfo(info.getClientId(), info.getSubscriptionName()));
if (canConduit(ds) && filter.matches(info.getDestination())) { LOG.debug("{} {} with ids {} matched (add interest) {}", new Object[]{ configuration.getBrokerName(), info, info.getNetworkConsumerIds(), ds if (isProxyNSConsumerBrokerPath(info) && info.getSubscriptionName() != null && info.getSubscriptionName().startsWith(DURABLE_SUB_PREFIX)) { final BrokerId[] path = info.getBrokerPath(); addProxyNetworkSubscriptionBrokerPath(ds, path, info.getSubscriptionName()); } else if (isProxyNSConsumerClientId(info.getClientId()) && isProxyBridgeSubscription(info.getClientId(), info.getSubscriptionName())) { addProxyNetworkSubscriptionClientId(ds, info.getClientId(), info.getSubscriptionName()); } else { ds.getDurableRemoteSubs().add(new SubscriptionInfo(info.getClientId(), info.getSubscriptionName()));
@Override protected DemandSubscription createDemandSubscription(ConsumerInfo info) throws IOException { if (addToAlreadyInterestedConsumers(info, false)) { return null; // don't want this subscription added } //add our original id to ourselves info.addNetworkConsumerId(info.getConsumerId()); info.setSelector(null); return doCreateDemandSubscription(info); }
@Override protected void removeDemandSubscription(ConsumerId id) throws IOException { List<DemandSubscription> tmpList = new ArrayList<DemandSubscription>(); for (Iterator i = subscriptionMapByLocalId.values().iterator(); i.hasNext();) { DemandSubscription ds = (DemandSubscription)i.next(); if (ds.remove(id)) { if (LOG.isDebugEnabled()) { LOG.debug(configuration.getBrokerName() + " removing interest in sub on " + localBroker + " from " + remoteBrokerName + " : sub: " + id + " existing matched sub: " + ds.getRemoteInfo()); } } if (ds.isEmpty()) { tmpList.add(ds); } } for (Iterator<DemandSubscription> i = tmpList.iterator(); i.hasNext();) { DemandSubscription ds = i.next(); removeSubscription(ds); if (LOG.isDebugEnabled()) { LOG.debug(configuration.getBrokerName() + " removing sub on " + localBroker + " from " + remoteBrokerName + " : " + ds.getRemoteInfo()); } } }
/** * Subscriptions for these destinations are always created * */ protected void setupStaticDestinations() { super.setupStaticDestinations(); ActiveMQDestination[] dests = configuration.isDynamicOnly() ? null : durableDestinations; if (dests != null) { for (int i = 0; i < dests.length; i++) { ActiveMQDestination dest = dests[i]; if (isPermissableDestination(dest) && !doesConsumerExist(dest)) { DemandSubscription sub = createDemandSubscription(dest); if (dest.isTopic()) { sub.getLocalInfo().setSubscriptionName(getSubscriberName(dest)); } try { addSubscription(sub); } catch (IOException e) { LOG.error("Failed to add static destination " + dest, e); } if (LOG.isTraceEnabled()) { LOG.trace("Forwarding messages for durable destination: " + dest); } } } } }
if (canConduit(ds) && filter.matches(info.getDestination())) { LOG.debug("{} {} with ids {} matched (add interest) {}", new Object[]{ configuration.getBrokerName(), info, info.getNetworkConsumerIds(), ds if (isProxyNSConsumerBrokerPath(info) && info.getSubscriptionName() != null && info.getSubscriptionName().startsWith(DURABLE_SUB_PREFIX)) { final BrokerId[] path = info.getBrokerPath(); addProxyNetworkSubscriptionBrokerPath(ds, path, info.getSubscriptionName()); } else if (isProxyNSConsumerClientId(info.getClientId()) && isProxyBridgeSubscription(info.getClientId(), info.getSubscriptionName())) { addProxyNetworkSubscriptionClientId(ds, info.getClientId(), info.getSubscriptionName()); } else { ds.getDurableRemoteSubs().add(new SubscriptionInfo(info.getClientId(), info.getSubscriptionName()));
@Override protected DemandSubscription createDemandSubscription(ConsumerInfo info) throws IOException { if (addToAlreadyInterestedConsumers(info, false)) { return null; // don't want this subscription added } //add our original id to ourselves info.addNetworkConsumerId(info.getConsumerId()); info.setSelector(null); return doCreateDemandSubscription(info); }
@Override protected void removeDemandSubscription(ConsumerId id) throws IOException { List<DemandSubscription> tmpList = new ArrayList<DemandSubscription>(); for (DemandSubscription ds : subscriptionMapByLocalId.values()) { if (ds.remove(id)) { LOG.debug("{} on {} from {} removed interest for: {} from {}", new Object[]{ configuration.getBrokerName(), localBroker, remoteBrokerName, id, ds }); } if (ds.isEmpty()) { tmpList.add(ds); } } for (DemandSubscription ds : tmpList) { removeSubscription(ds); LOG.debug("{} on {} from {} removed {}", new Object[]{ configuration.getBrokerName(), localBroker, remoteBrokerName, ds }); } } }
super.setupStaticDestinations(); ActiveMQDestination[] dests = configuration.isDynamicOnly() ? null : durableDestinations; if (dests != null) {
@Override protected DemandSubscription createDemandSubscription(ConsumerInfo info) throws IOException { if (addToAlreadyInterestedConsumers(info, false)) { return null; // don't want this subscription added } //add our original id to ourselves info.addNetworkConsumerId(info.getConsumerId()); info.setSelector(null); return doCreateDemandSubscription(info); }
@Override protected void removeDemandSubscription(ConsumerId id) throws IOException { List<DemandSubscription> tmpList = new ArrayList<DemandSubscription>(); for (DemandSubscription ds : subscriptionMapByLocalId.values()) { if (ds.remove(id)) { LOG.debug("{} on {} from {} removed interest for: {} from {}", new Object[]{ configuration.getBrokerName(), localBroker, remoteBrokerName, id, ds }); } if (ds.isEmpty()) { tmpList.add(ds); } } for (DemandSubscription ds : tmpList) { removeSubscription(ds); LOG.debug("{} on {} from {} removed {}", new Object[]{ configuration.getBrokerName(), localBroker, remoteBrokerName, ds }); } } }
super.setupStaticDestinations(); ActiveMQDestination[] dests = configuration.isDynamicOnly() ? null : durableDestinations; if (dests != null) {
@Override protected DemandSubscription createDemandSubscription(ConsumerInfo info) throws IOException { if (addToAlreadyInterestedConsumers(info)) { return null; // don't want this subscription added } //add our original id to ourselves info.addNetworkConsumerId(info.getConsumerId()); info.setSelector(null); return doCreateDemandSubscription(info); }
@Override protected void removeDemandSubscription(ConsumerId id) throws IOException { List<DemandSubscription> tmpList = new ArrayList<DemandSubscription>(); for (DemandSubscription ds : subscriptionMapByLocalId.values()) { if (ds.remove(id)) { LOG.debug("{} on {} from {} removed interest for: {} from {}", new Object[]{ configuration.getBrokerName(), localBroker, remoteBrokerName, id, ds }); } if (ds.isEmpty()) { tmpList.add(ds); } } for (DemandSubscription ds : tmpList) { removeSubscription(ds); LOG.debug("{} on {} from {} removed {}", new Object[]{ configuration.getBrokerName(), localBroker, remoteBrokerName, ds }); } } }
super.setupStaticDestinations(); ActiveMQDestination[] dests = configuration.isDynamicOnly() ? null : durableDestinations; if (dests != null) {