问题描述
几天前,一位客户提到我们找不到实体,尽管我们的系统返回了 202,这意味着请求已成功处理。 请求已成功处理,因为可以在 EventStore 中找到因请求而导致的命令引起的事件。
这个问题的奇怪之处在于所有跟踪处理器都没有在第一个请求引起的事件上被调用。 在随后的事件中,跟踪处理器抛出异常,因为在数据库中找不到实体。 因此,第一个命令的事件的事件处理程序没有被调用,但对于后续命令,事件被调用。
由于没有调用跟踪处理器,第一个命令中的事件可能出现什么问题?
我们的设置正在运行连接到 1 个 Postgresql 数据库的 2 个轴突实例。 处理器由 JPA 和 JDBC 存储库提供支持。
下面是 EventStore 中事件的简化快照:
global_index | payload_type | 时间戳 | aggregate_id | sequence_number | 我的结论 |
---|---|---|---|---|---|
8219359 | Aggregate1CreatedEventDuetoRequest1 | 2021-02-08T16:25:33.763048105Z | 1 | 0 | |
8235842 | Aggregate2CreatedEventDuetoRequest0 | 2021-02-08T17:12:28.036313918Z | 2 | 0 | 未由 TP 处理 |
8235843 | Aggregate2Event2DuetoRequest1 | 2021-02-08T17:12:28.036338611Z | 2 | 1 | 不由 TP 处理,而是由订阅处理器处理 |
8235844 | Aggregate2Event3DuetoRequest1 | 2021-02-08T17:12:28.03635331Z | 2 | 2 | 未由 TP 处理 |
8235845 | Aggregate2Event4DuetoRequest1 | 2021-02-08T17:12:28.036372834Z | 2 | 3 | 未由 TP 处理 |
8235847 | Aggregate1Event2DuetoAggregate2Event2DuetoRequest1 | 2021-02-08T17:12:28.045952574Z | 1 | 1 | |
8235848 | Aggregate1Event3DuetoAggregate2Event2DuetoRequest1 | 2021-02-08T17:12:28.04599099Z | 1 | 2 | |
8235849 | Aggregate1Event4DuetoAggregate2Event2DuetoRequest1 | 2021-02-08T17:12:28.04608497Z | 1 | 3 | |
8235850 | Aggregate2Event5DuetoRequest2 | 2021-02-08T17:12:28.058377074Z | 2 | 4 | 由 TP 处理,但未处理作为先前事件的异常 |
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)