java - SOA 中的超时

标签 java timeout weblogic soa bpel

我在 weblogic 服务器中部署了一个应用程序。在该应用程序中,我通过组合中的 bpel 调用异步 Web 服务。 5 分钟后超时。 我尝试在调用 Activity 期间添加以下代码: bpelx:for="'PTM20'" 但仍然超时5分钟。

除了添加这个之外,我还需要做什么吗?是否有任何全局 SOA 属性需要修改?

我通过这样的 bpel 调用 aync Web 服务:

< invoke name="myprocess"  inputVariable="varx"  operation="method" bpelx:for="'PTM20'" ....>

我遇到的异常如下:

<bpelFault><faultType>0</faultType>
<remoteFault xmlns="http://schemas.oracle.com/bpel/extension">
<part name="summary">
<summary>oracle.fabric.common.FabricInvocationException: Unable to invoke endpoint URI "my_webservice_url" successfully due to: javax.xml.soap.SOAPException: javax.xml.soap.SOAPException: Message send failed: Read timed out</summary></part>
<part name="detail"><detail>Unable to invoke endpoint URI "my_webservice_url" successfully due to: javax.xml.soap.SOAPException: javax.xml.soap.SOAPException: Message send failed: Read timed out</detail></part>
<part name="code"><code>null</code></part>
</remoteFault></bpelFault>

在查看审计跟踪时,我可以看到调用和发生超时之间的时间差为 5 分钟。并没有像预期的那样等待20分钟。

请帮忙。

谢谢。

最佳答案

配置 SOA/BPEL 引擎超时时需要考虑几个地方:

  1. 域范围内的全局 JTA 超时设置
  2. 各个 BPEL 引擎 EJB 超时

理想情况下,您永远不想遇到这些超时,因为您将无法进行正确的错误处理。为了避免这种情况,您应该在传出引用链接上设置单独的超时,并确保它们的值小于上面提到的两个。

关于这个主题有很多博客文章,初学者可以看看 this post

关于java - SOA 中的超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40301872/

相关文章:

java - 如何获取两个日期之间的通话记录数据和日期之间的来电和去电总数

java - 当 Java 向 Oracle 发送消息时

Python 网络抓取 : difference between sleep and request(page, 超时=x)

java - 如何从 weblogic.jdbc.wrapper.Clob_oracle_sql_CLOB 获取字符串?

java - 静态 block 被调用两次,也许是多个类加载器?

java - OSX El Cap、Apache2、Tomcat 8、Lucee 5

java - 将 ImageJ 宏命令实现到现有插件中

使用 cakephp acl 创建实用程序的 mysql 超时

10 分钟后 svnsync 超时

java - 如何让 Weblogic 10 更喜欢 myApp.war :/WEB-INF/lib/without throwing VerifyErrors? 中的 jar