0

我已经在集群部署中测试了 WSO2 MB 2.2.0,其中 WS 订阅了一个主题。我已经复制了项目文档中描述的设置。

当集群中的第一个节点启动时,它会按预期获得持久订阅队列。但是,第二个和后面的节点也尝试获得持久连接,并且代理拒绝访问并引发异常。这是代理部分的预期行为,但其余节点的主题管理部分崩溃,因此集群的其余成员无法启动到可用状态。

这是一个已知问题,集群的预期行为吗?是不是意味着 CarbonEventBroker 组件不适合集群环境?

这是启动 IService 组件时引发的异常的日志(我猜):

TID:[0] [MB] [2015-11-16 13:11:36,670] 错误 {org.wso2.carbon.event.core.internal.builder.EventBrokerHandler} - 无法创建事件代理 {org.wso2. carbon.event.core.internal.builder.EventBrokerHandler}
org.wso2.carbon.event.core.exception.EventBrokerConfigurationException:无法获取订阅
在 org.wso2.carbon.event.core.internal.CarbonEventBroker.loadExistingSubscriptions(CarbonEventBroker.java:83)
在 org.wso2.carbon.event.core.internal.CarbonEventBroker.init(CarbonEventBroker.java:67)
在 org.wso2.carbon.event.core.internal.CarbonEventBrokerFactory.getEventBroker(CarbonEventBrokerFactory.java:90)
在 org.wso2.carbon.event.core.internal.builder.EventBrokerBuilder.createEventBroker(EventBrokerBuilder.java:56)
在 org.wso2.carbon.event.core.internal.builder.EventBrokerHandler.startEventBroker(EventBrokerHandler.java:57)
在 org.wso2.carbon.event.core.internal.builder.EventBrokerHandler.notifyStart(EventBrokerHandler.java:96)
在 org.wso2.carbon.andes.internal.QpidServiceComponent.activate(QpidServiceComponent.java:258)
在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke(Method.java:606)
在 org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260)
在 org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
在 org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:347)
在 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
在 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
在 org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
在 org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
在 org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107)
在 org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)
在 org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
在 org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
在 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)
在 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)
在 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
在 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214)
在 org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433)
在 org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:451)
在 org.wso2.carbon.event.core.internal.builder.EventBrokerBuilderDS.activate(EventBrokerBuilderDS.java:69)
在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke(Method.java:606)
在 org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260)
在 org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
在 org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:347)
在 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
在 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
在 org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
在 org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
在 org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107)
在 org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)
在 org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
在 org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
在 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)
在 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)
在 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
在 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214)
在 org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433)
在 org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:451)
在 org.wso2.carbon.core.init.CarbonServerManager.initializeCarbon(CarbonServerManager.java:517)
在 org.wso2.carbon.core.init.CarbonServerManager.start(CarbonServerManager.java:219)
在 org.wso2.carbon.core.internal.CarbonCoreServiceComponent.activate(CarbonCoreServiceComponent.java:77)
在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
在 java.lang.reflect.Method.invoke(Method.java:606)
在 org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260)
在 org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
在 org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:347)
在 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
在 org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
在 org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
在 org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
在 org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107)
在 org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)
在 org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
在 org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
在 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)
在 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)
在 org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
在 org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214)
在 org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433)
在 org.eclipse.equinox.http.servlet.internal.Activator.registerHttpService(Activator.java:81)
在 org.eclipse.equinox.http.servlet.internal.Activator.addProxyServlet(Activator.java:60)
在 org.eclipse.equinox.http.servlet.internal.ProxyServlet.init(ProxyServlet.java:40)
在 org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.init(DelegationServlet.java:38)
在 org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1267)
在 org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1186)
在 org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1081)
在 org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5027)
在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314)
在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
在 java.util.concurrent.FutureTask.run(FutureTask.java:262)
在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
在 java.lang.Thread.run(Thread.java:745)
引起:org.wso2.carbon.event.core.exception.EventBrokerException:无法订阅主题/msg/EVT-01 注册消费者时出错:org.wso2.andes.AMQSecurityException:无法订阅队列碳:bc4688e3fb936491cf1f524905ffbd9ef816e80bea175512 因为它已经有一个现有的独占消费者 [错误代码 403:访问被拒绝]
在 org.wso2.carbon.event.core.internal.delivery.jms.JMSDeliveryManager.subscribe(JMSDeliveryManager.java:136)
在 org.wso2.carbon.event.core.internal.CarbonEventBroker.loadExistingSubscriptions(CarbonEventBroker.java:79)
... 88 更多
原因:javax.jms.JMSException:注册消费者时出错:org.wso2.andes.AMQSecurityException:无法订阅队列 carbon:bc4688e3fb936491cf1f524905ffbd9ef816e80bea175512,因为它已经有一个现有的独占消费者 [错误代码 403:拒绝访问]
在 org.wso2.andes.client.AMQSession$5.execute(AMQSession.java:2084)
在 org.wso2.andes.client.AMQSession$5.execute(AMQSession.java:2027)
在 org.wso2.andes.client.AMQConnectionDelegate_8_0.executeRetrySupport(AMQConnectionDelegate_8_0.java:315)
在 org.wso2.andes.client.AMQConnection.executeRetrySupport(AMQConnection.java:621)
在 org.wso2.andes.client.failover.FailoverRetrySupport.execute(FailoverRetrySupport.java:102)
在 org.wso2.andes.client.AMQSession.createConsumerImpl(AMQSession.java:2025)
在 org.wso2.andes.client.AMQSession.createConsumer(AMQSession.java:1028)
在 org.wso2.andes.client.AMQSession.createDurableSubscriber(AMQSession.java:1177)
在 org.wso2.andes.client.AMQSession.createDurableSubscriber(AMQSession.java:1077)
在 org.wso2.andes.client.AMQTopicSessionAdaptor.createDurableSubscriber(AMQTopicSessionAdaptor.java:73)
在 org.wso2.carbon.event.core.internal.delivery.jms.JMSDeliveryManager.subscribe(JMSDeliveryManager.java:130)
... 89 更多
引起:org.wso2.andes.AMQSecurityException:无法订阅队列 carbon:bc4688e3fb936491cf1f524905ffbd9ef816e80bea175512 因为它已经有一个现有的独占消费者 [错误代码 403:访问被拒绝]
在 org.wso2.andes.client.handler.ConnectionCloseMethodHandler.methodReceived(ConnectionCloseMethodHandler.java:85)
在 org.wso2.andes.client.handler.ClientMethodDispatcherImpl.dispatchConnectionClose(ClientMethodDispatcherImpl.java:192)
在 org.wso2.andes.framing.amqp_0_91.ConnectionCloseBodyImpl.execute(ConnectionCloseBodyImpl.java:140)
在 org.wso2.andes.client.state.AMQStateManager.methodReceived(AMQStateManager.java:111)
在 org.wso2.andes.client.protocol.AMQProtocolHandler.methodBodyReceived(AMQProtocolHandler.java:515)
在 org.wso2.andes.client.protocol.AMQProtocolSession.methodFrameReceived(AMQProtocolSession.java:461)
在 org.wso2.andes.framing.AMQMethodBodyImpl.handle(AMQMethodBodyImpl.java:96)
在 org.wso2.andes.client.protocol.AMQProtocolHandler$2.run(AMQProtocolHandler.java:466)
在 org.wso2.andes.pool.Job.processAll(Job.java:109)
在 org.wso2.andes.pool.Job.run(Job.java:157)
... 3 更多
TID:[0] [MB] [2015-11-16 13:11:36,671] 错误 {org.wso2.andes.client.AMQConnection} - Throwable 已接收但未设置侦听器:org.wso2.andes.AMQException:无法订阅排队 carbon:bc4688e3fb936491cf1f524905ffbd9ef816e80bea175512 因为它已经有一个现有的独占消费者 [错误代码 403: 拒绝访问] {org.wso2.andes.client.AMQConnection}
4

0 回答 0