Сервер Fiware CEP перестает отвечать

При разработке в CEP Fi-Cloud у меня была проблема, которая повторялась неоднократно. Поскольку я пытаюсь разработать определение для выполнения задачи, сервер CEP и Authoring Tool перестают отвечать, хотя ssh все еще реагирует.

Эта проблема происходит по мере моего развития. Я использую AuthoringTool для изменения определения по крупицам, а затем повторно загружаю его на сервер с помощью функции экспорта инструмента разработки. Чтобы заново инициировать протон с новым определением каждый раз, когда я его изменяю, я использую Почтальон Google с этой единственной операцией:

-PUT (url:http: // {ip}: 8080 / ProtonOnWebServerAdmin / resources / instances / ProtonOnWebServer) заголовок: 'Content-Type': 'application / json'; body: {"action": "ChangeDefinitions", "definitions-url": "/ ProtonOnWebServerAdmin / resources / definitions / Definition_Name"}

В то же время, я вошел в систему с тремя экземплярами ssh, один для мониторинга файлов, создаваемых в /opt/tomcat10/sample/, и других вещей, а два других - для файлов журнала 'tail -f', в которые записывается определение, как обрабатываются события: один журнал для полученных событий и другой журнал для событий, обнаруженных EPAgent.

Я повторяю эти процедуры снова и снова, поскольку я разрабатываю и, в конечном итоге, сервер CEP и Authoring Tool перестают отвечать.

"Хвост" файла журнала Tomcat (# tail -f /opt/tomcat10/logs/catalina.out) я могу видеть, что, когда в этих обстоятельствах, если я пытаюсь:

-GET (URL: http: // {ip}: 8080 / ProtonOnWebServerAdmin / resources / instances / ProtonOnWebServer) Я не получаю ответ, и tomcat регистрирует следующий ответ:

11452100 [http-bio-8080-exec-167] ERROR org.apache.wink.server.internal.RequestProcessor - An unhandled exception occurred which will be propagated to the container.
java.lang.OutOfMemoryError: PermGen space
Exception in thread "http-bio-8080-exec-167" java.lang.OutOfMemoryError: PermGen space

Ssh все еще отзывчив, и я могу посмотреть на журнал Tomcat таким образом. Чтобы преодолеть это и продолжить, я выхожу из ssh-соединения и перезапускаю экземпляр CEP в Fi-Cloud.

Является ли процедура, которую я использую для повторной загрузки и повторного запуска определения, неуместной? Должен ли я придерживаться иного подхода к разработке?

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

Спасибо

1 ответ

Решение

Когда вы обновляете определение, с которым CEP уже работает, и хотите, чтобы механизм CEP работал с обновленным определением, вам необходимо:

  1. Экспортируйте определение, используя экспорт инструмента авторинга (как вы это сделали)

  2. Остановите двигатель, используя REST PUT

    PUT //host:8080/ProtonOnWebServerAdmin/resources/instances/ProtonOnWebServer
    {"action":"ChangeState","state":"stop"}
    
  3. Запустите двигатель, используя REST PUT

    PUT //host:8080/ProtonOnWebServerAdmin/resources/instances/ProtonOnWebServer
    {"action":"ChangeState","state":"start"}
    

Вам не нужно активировать действие "ChangeDefinitions", так как это то же имя определения, с которым движок уже работает.

Активация действия "ChangeDefinitions" влияет только на следующий запуск CEP и не влияет на текущий запуск.

Это ответ на ваш вопрос о том, как вы должны обновить определение CEP. Надеюсь, это решит вашу проблему.

Другие вопросы по тегам