Отключение брокера Wso2-das с исключением «Не удается отписаться от получателя» - PullRequest
0 голосов
/ 13 февраля 2019

У нас есть платформа IOT, которая публикует данные с использованием PAHO MQTT с QOS1 для брокера verneMQ.У нас есть настроенный адаптер MQTTInputAdapter в Wso2-das, который подписывается на эту тему с QOS0.

Вход на платформу похож на 500 пакетов в секунду.Wso2-das работает в течение нескольких дней (непоследовательное поведение), но после этого выдает следующее исключение.Единственный способ обойти эту проблему в настоящее время - перезапустить das:

    TID: [-1234] [] [2019-02-12 12:03:48,614] ERROR {org.wso2.carbon.event.input.adapter.mqtt.internal.util.MQTTAdapterListener} -  Can not unsubscribe from the destination $share/com/tracking with the event adapter track.receiver {org.wso2.carbon.event.input.adapter.mqtt.internal.util.MQTTAdapterListener}
    Client is currently disconnecting (32102)
            at org.eclipse.paho.client.mqttv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:27)
            at org.eclipse.paho.client.mqttv3.internal.ClientComms.disconnect(ClientComms.java:409)
            at org.eclipse.paho.client.mqttv3.MqttAsyncClient.disconnect(MqttAsyncClient.java:524)
            at org.eclipse.paho.client.mqttv3.MqttClient.disconnect(MqttClient.java:250)
            at org.wso2.carbon.event.input.adapter.mqtt.internal.util.MQTTAdapterListener.stopListener(MQTTAdapterListener.java:122)
            at org.wso2.carbon.event.input.adapter.mqtt.MQTTEventAdapter.disconnect(MQTTEventAdapter.java:96)
            at org.wso2.carbon.event.input.adapter.core.internal.InputAdapterRuntime.destroy(InputAdapterRuntime.java:93)
            at org.wso2.carbon.event.input.adapter.core.internal.CarbonInputEventAdapterService.destroy(CarbonInputEventAdapterService.java:172)
            at org.wso2.carbon.event.receiver.core.internal.CarbonEventReceiverService.deactivateActiveEventReceiverConfigurationsForAdapter(CarbonEventReceiverService.java:442)
            at org.wso2.carbon.event.receiver.core.internal.ds.EventReceiverServiceDS.unSetEventAdapterType(EventReceiverServiceDS.java:173)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:498)
            at org.eclipse.equinox.internal.ds.model.ComponentReference.unbind(ComponentReference.java:476)
            at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.unbindDynamicReference(ServiceComponentProp.java:641)
            at org.eclipse.equinox.internal.ds.InstanceProcess.dynamicUnBind(InstanceProcess.java:466)
            at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:383)
            at org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
            at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107)
            at org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)
            at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
            at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
            at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)
            at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)
            at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:225)
            at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.unregisterServices(ServiceRegistry.java:635)
            at org.eclipse.osgi.framework.internal.core.BundleContextImpl.close(BundleContextImpl.java:88)
            at org.eclipse.osgi.framework.internal.core.BundleHost.stopWorker(BundleHost.java:514)
            at org.eclipse.osgi.framework.internal.core.AbstractBundle.suspend(AbstractBundle.java:566)
            at org.eclipse.osgi.framework.internal.core.Framework.suspendBundle(Framework.java:1206)
            at org.eclipse.osgi.framework.internal.core.StartLevelManager.decFWSL(StartLevelManager.java:592)
            at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:257)
            at org.eclipse.osgi.framework.internal.core.StartLevelManager.shutdown(StartLevelManager.java:215)
            at org.eclipse.osgi.framework.internal.core.InternalSystemBundle.suspend(InternalSystemBundle.java:284)
            at org.eclipse.osgi.framework.internal.core.Framework.shutdown(Framework.java:692)
            at org.eclipse.osgi.framework.internal.core.Framework.close(Framework.java:600)
            at org.eclipse.core.runtime.adaptor.EclipseStarter.shutdown(EclipseStarter.java:400)
            at org.wso2.carbon.core.init.CarbonServerManager.shutdown(CarbonServerManager.java:851)
            at org.wso2.carbon.core.init.CarbonServerManager.shutdownGracefully(CarbonServerManager.java:885)
            at org.wso2.carbon.core.init.CarbonServerManager$4.run(CarbonServerManager.java:903)

Что я понимаю из этого исключения, так это то, что Wso2-das пытался отключить посредника, и снова предпринимается попытка переподключения.Но поскольку отключение требует времени, повторное подключение не выполняется.Подскажите, пожалуйста, как отладить эту проблему.

...