我在 WebSphere 上使用共享流程引擎,我想了解引擎如何查找流程步骤调用所需的资源(我的流程应用程序附带的自定义代码)。是否应用了线程上下文切换?
问问题
93 次
1 回答
1
共享流程引擎可由多个应用程序使用,其中一个应用程序是 Camunda Web 应用程序。
每当流程引擎在流程实例中“做某事”时,例如执行服务任务,它都会执行线程上下文切换。该线程上下文切换被执行到部署了引擎当前正在执行的 BPMN 流程的应用程序。这对于流程引擎能够使用该应用程序中本地可用的资源是必要的。
此类资源的示例:
- 应用程序的类加载器,用于实例化 Java Delegates
- 应用程序的 CDI Bean 管理器,以便能够调用 CDI Bean。
这个“线程上下文切换”在技术上是如何工作的?
流程引擎在必须包含在应用程序中的 EJB 上执行回调方法。这就是您包含 camunda-ejb-client.jar 的原因。相关信息:流程引擎调用该 EJB 的本地业务接口。
因此,线程上下文切换是使用 EJB 本地调用语义执行的。Websphere 为 EJB 本地调用设置的任何内容都将起作用,而 Websphere 没有为 EJB 本地调用设置的任何内容都将不起作用。
该行为与将 Java 委托中的代码放入具有本地业务接口的 EJB 并从另一个应用程序调用它的行为完全相同。
于 2015-05-11T13:07:01.227 回答