1

我正在使用 commonj.work.WorkManager 来并行处理一些查询。我有一系列实现接口的 dao 类,并且有一个 Work 的实现,它执行 run 方法中的方法。有了这个设置,我就可以按照我对工作 API 的期望返回数据。

我现在正在尝试处理错误情况: - dao 中遇到的异常 - 查询花费的时间比 waitForAll 允许的时间长

我注意到 WorkItem.getResult 为仍在处理的查询返回 null。我仍然有 ArrayList 中 dao 对象的实例,因此我可以从那里获取参数和设置。看起来我应该能够从 WorkItem 得到这个,有没有更好的方法?

此外,我能够获得抛出的异常的唯一方法是将其存储在实现 Work 的类中并为其提供访问器方法。再次,我觉得必须有更好的方法。

这是在没有 EJB 3、WS 功能包的 websphere 6.1 上运行的(所以没有 Java EE 5)。

4

1 回答 1

1

虽然这个问题已经有一年了,但我想提供一个更新,以防有人遇到这个问题。我实现 Work 的类有一个成员属性,它将存储异常。我以为这将是一个问题,但实际上效果很好。线程调用中引发的任何异常都不应影响正在运行的任何其他线程,当所有工作完成后,我会评估异常并根据问题采取措施。

于 2012-08-15T19:52:00.223 回答