Fiware CEP 服务器停止响应

Fiware CEP server stops responding

在 Fi-Cloud 的 CEP 开发过程中,我遇到了一个反复发生的问题。当我尝试制定执行任务的定义时,CEP 的服务器和创作工具停止响应,尽管 ssh 仍在响应。

这个问题是我开发的时候出现的。我正在使用 AuthoringTool 一点一点地更改定义,然后我 re-upload 通过创作工具的导出功能将其发送到服务器。 为了在每次更改质子时使用新定义重新启动质子,我使用 Google 的 Postman 进行此单一操作:

-PUT (url:http://{ip}:8080/ProtonOnWebServerAdmin/resources/instances/ProtonOnWebServer) header: 'Content-Type' : 'application/json'; body:{"action":"ChangeDefinitions","definitions-url":“/ProtonOnWebServerAdmin/resources/definitions/Definition_Name”}

同时,我使用三个 ssh 实例登录,一个用于监视在 /opt/tomcat10/sample/ 上创建的文件和其他内容,另外两个用于 'tail -f ' 日志文件随着事件的处理,定义写入:一个日志用于接收事件,另一个日志用于 EPAgent 检测到的事件。

我在开发过程中反复执行这些过程,最终 CEP 服务器和创作工具停止响应。

通过"tailing" 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 连接并在 Fi-Cloud.

中重新启动 CEP 实例

我对 re-upload 和 re-run 定义使用的程序是否不合适?我应该采用不同的开发方法吗?

当您更新 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 定义的问题。 希望它能解决您的问题。