WSO2 DAS + кластеризация APIM с mysql

  1. Моя версия APIM — 1.10.0, а DAS — 3.0.1.

  2. Сначала я не развертываю Clustering APIM + DAS с mysql. статистика показывает хорошо.

  3. Затем я группирую APIM в издателя, хранилище, диспетчер ключей и шлюз. Настроенный порядок APIM и DAS эта статья, когда я вызываю API, узел шлюза показывает ошибку

[2016-10-13 11:13:54,775] ERROR - APIMgtUsageHandler Cannot publish event. null
java.lang.NullPointerException
        at org.wso2.carbon.apimgt.usage.publisher.APIMgtUsageDataBridgeDataPublisher.publishEvent(APIMgtUsageDataBridgeDataPublisher.java:124)
        at org.wso2.carbon.apimgt.usage.publisher.APIMgtUsageHandler.handleRequest(APIMgtUsageHandler.java:169)
        at org.apache.synapse.rest.API.process(API.java:322)
        at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:86)
        at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:65)
        at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:295)
        at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:83)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
        at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:317)
        at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:149)
        at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
[2016-10-13 11:13:54,807] ERROR - APIMgtResponseHandler Cannot publish response event. null
java.lang.NullPointerException
        at org.wso2.carbon.apimgt.usage.publisher.APIMgtUsageDataBridgeDataPublisher.publishEvent(APIMgtUsageDataBridgeDataPublisher.java:140)
        at org.wso2.carbon.apimgt.usage.publisher.APIMgtResponseHandler.mediate(APIMgtResponseHandler.java:211)
        at org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.java:84)
        at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:81)
        at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:48)
        at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:155)
        at org.apache.synapse.rest.Resource.process(Resource.java:297)
        at org.apache.synapse.rest.API.process(API.java:335)
        at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:86)
        at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:52)
        at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:295)
        at org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:529)
        at org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:172)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
        at org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:251)
        at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
  1. Затем я меняю способ настройки DAS. Следуя этому блогу, я настроил все файлы api-manager.xml, ошибок и статистики нет. информация об узле хранения:
[2016-10-18 11:31:39,131]  INFO - ReceiverGroup Resending the failed published data...
[2016-10-18 11:31:44,134]  WARN - AccessConfiguration Error loading properties from file: access-log.properties
[2016-10-18 11:31:44,207]  INFO - TimeoutHandler This engine will expire all callbacks after : 120 seconds, irrespective of the timeout
  1. Я гуглю причину, в wso2 jira говорят, что это не ошибка.

Но я не могу часами ждать свою статистику. Я что-то не так настроил?

Награды.


person christ.f    schedule 18.10.2016    source источник
comment
Вы можете просмотреть таблицу DAS, войдя в консоль управления DAS. Вы можете просмотреть таблицу org.wso2.apimgt.statistics.request в меню проводника данных. Также убедитесь, что вы развернули Capp в каталоге ‹DAS›/repository/deployment/server/carbonapps/.   -  person ruks    schedule 19.10.2016
comment
в таблице org.wso2.apimgt.statistics.request в меню проводника данных нет данных, за исключением того, что таблица ORG_WSO2_APIMGT_STATISTICS_WORKFLOW получает несколько данных. В разделе ‹DAS›/repository/deployment/server/carbonapps/ находится API_Manager_Analytics_RDBMS.car. Нет распределенного APIM, я могу получить статистику от издателя и магазина. при раздаче нет статистики   -  person christ.f    schedule 19.10.2016


Ответы (1)


Кажется, в узле магазина данные публикуются и работают. Но данные узла шлюза не публикуются. Попробуйте проверить конфигурацию узла шлюза. Также проверьте, может ли узел шлюза получить доступ к узлу DAS.

person ruks    schedule 19.10.2016
comment
Спасибо, Рукс. Конфигурация в файле api-manager.xml узла хранилища и шлюза одинакова. Есть ли другая конфигурация? Как я могу проверить, может ли узел шлюза получить доступ к узлу DAS? Могу ли я на шаге 2 доказать, что DAS доступен? Или получатель DAS не получил сообщение? - person christ.f; 20.10.2016
comment
Я не использую распределенный APIM с DAS, после вызова API есть статистика. Затем я меняю APIM на DISTRIBUTED, затем я вызываю другой API, статистика показывает SubscriberCount, но не Hits. - person christ.f; 20.10.2016
comment
Но консоль управления DAS в меню проводника данных не могу найти новый вызов API DATA. Шлюз не может отправить или DAS не может получить? И как slove? - person christ.f; 20.10.2016