0

我想在 Oracle SOA 11g 中运行一个包含 Java 嵌入的组合,其中有一个 Java 嵌入活动可能持续超过 SOA 超时(当前为 5 分钟)。

我尝试在 Java 嵌入前后对 BPEL 流程进行脱水,但如果嵌入时间超过 5 分钟,整个实例就会出错。我什至尝试了checkpoint();从嵌入内部强制脱水的指令,但它似乎在 11g 中没有效果,尽管在部署复合材料时它不会产生错误,因为 11g 中的一个错误。

有没有办法确保我的复合材料永远不会超时?
请记住:

  • 我无法使用简单的 BPEL 块执行 Java 嵌入中的活动
  • 我无法在更多嵌入块中分解嵌入并在它们之间脱水,因为有一条 Java 指令可能需要超过 5 分钟
  • 我无法更改 SOA 超时 5 分钟的值
4

1 回答 1

1

如果事情超时,也许发送一条 jms 消息并让一个消息 bean 运行 Java 并发布它的返回。让等待的 Bpel 入站 jms 适配器轮询新发布的消息。这意味着如果 SOA 套件流程引擎超时,您可能必须完全异步执行此操作。这篇文章也可能有所帮助。还要注意底部的其他链接。

在 12c 中,事务超时现在可以通过 BPEL 的 noTransaction 支持来解决。将以下属性添加到 Composite.xml 中的 BPEL 组件:notSupported

于 2015-02-19T05:41:06.667 回答