SOA中的超时

时间:2016-10-28 09:16:51

标签: java timeout weblogic soa bpel

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

除了添加此内容,还有什么我需要做的吗?是否有要修改的全局SOA属性?

我通过这样的bpel调用aync webservice:

< 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分钟。

请帮忙。

感谢。

1 个答案:

答案 0 :(得分:1)

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

  1. 域范围的全局JTA超时设置
  2. 各个BPEL引擎EJB超时
  3. 理想情况下,您永远不会想要超时,因为您无法进行正确的错误处理。为避免这种情况,您应该在传出引用链接上设置单独的超时,并确保它们的值小于上面提到的值。

    有很多关于此主题的博客文章,初学者可以看一下this post