ActiveMQ问题解决记录
问题4:Networks of Brokers
在每个activemq server的配置文件activemq.xml里加入如下内容,每个activemq server都需要设置内容相类型的multicase,如果activemq的连接设置了安全权限,则需要在networkConnector元素中加入userName password内容。
<transportConnectors> <transportConnector name="openfire" uri="tcp://localhost:61617" discoveryUri="multicast://openfire"/> </transportConnectors> <networkConnectors> <!-- by default just auto discover the other brokers --> <networkConnector name="openfire" uri="multicast://openfire" userName="publisher" password="password" /> </networkConnectors>
public void removeConsumer(ConnectionContext context, ConsumerInfo info) throws Exception { Subscription sub = (Subscription) subscriptions.remove(info.getConsumerId());// if( sub==null )// throw new IllegalArgumentException("The subscription does not exist: "+info.getConsumerId()); if (sub != null) { // remove the subscription from all the matching queues. for (Iterator iter = destinationMap.get(info.getDestination()).iterator(); iter.hasNext();) { Destination dest = (Destination) iter.next(); dest.removeSubscription(context, sub); } destroySubscription(sub); } }INFO Service - Sync error occurred: java.lang.IllegalArgumentException: The subscription does not exist: OFFLINE:1:2java.lang.IllegalArgumentException: The subscription does not exist: OFFLINE:1:2 at org.apache.activemq.broker.region.AbstractRegion.removeConsumer(AbstractRegion.java:202) at org.apache.activemq.broker.region.TopicRegion.addConsumer(TopicRegion.java:92) at org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:296) at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:73) at org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:77) at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:73) at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:73) ......