【发布时间】:2023-06-19 14:07:01
【问题描述】:
在使用 WSO2 BPS 3.6.0 时,我们偶尔会遇到 OutOfMemoryError 并且服务器已停止。经过堆分析,我们怀疑:
我们有一些流程会定期查找某些信息(使用 Web 服务),直到业务项目状态未更改。一段时间后,一些流程实例可能有很多事件(数千个,大约 10k 个)。当试图在 carbon 控制台中查看实例信息时,加载的数据(实例活动)能够导致 en OutOfMemoryError 并丢弃服务器(具有 6GB RAM):(
作为一种解决方法 - 我们使用数据库查找:
select ode_event.event_id, ode_event.detail, ode_event.tstamp, ode_event.type,
ode_event.instance_id, ode_event.process_id,
ode_scope.scope_name
from ode_event, ode_scope where ode_event.instance_id=18204 and
(ode_event.scope_id = ode_scope.scope_id);
虽然我们认为让任何业务用户(甚至是流程所有者)直接访问数据库的想法非常糟糕。
有没有(更好的)方式/查询来查看活动?哪个是放置改进/功能(加载活动分页)的正确 github 项目?
编辑:
查看源代码,这种“行为”继承自 Apache-ODE 实现(急切地将整个范围和事件列表加载到内存中)
【问题讨论】:
标签: wso2 apache-ode wso2bps