0

在 Oracle SOA Suite 11g 上的 bpel 故障实例中出现超时问题。请查找错误:weblogic.transaction.internal.TimedOutException:Transaction 在 300 秒后超时。

为了进一步解释,我让读取适配器读取具有 5000 条记录的文件,并且 db 事务需要 5 多分钟才能放入数据库,导致 JTA 事务超时,因此回滚。我可以在 weblogic 数据源配置或 soa 基础设施配置中进行任何更改以纠正此问题。

用简单的语言来说,调用数据库适配器的 Bpel 进程需要更长的时间,因此会超时。我希望这能解释一切。

4

2 回答 2

0

我能够解决这个问题。

在 weblogic 控制台中更改了以下超时设置:

  1. 在 soa EJB 中设置超时: 打开 Weblogic 控制台并单击左侧导航菜单中的“部署”。通过单击 [+] 展开“soa-infra”并以相同方式展开节点“EJBs”。通过单击以下 EJB 的“配置”选项卡,将“事务超时”(值以秒为单位)增加到 3600: BPELEngineBean BPELDeliveryBean BPELActivityManagerBean BPELServerManagerBean BPELProcessManagerBean BPELInstanceManagerBean BPELFinderBean
  2. 在域结构中,选择服务 > JTA,将 JTA 事务超时值增加到 3600。

参考资料: http ://technology.amis.nl/2011/11/18/timeouts-in-oracle-soa-suite-11g/ http://www.albinsblog.com/2012/05/weblogictransactioninternaltimedoutexce.html#.UYuFT7Wmh1Y

于 2013-06-14T18:03:41.297 回答
0

我建议关注数据库性能问题。对于 99.9% 的性能问题,糟糕的数据库或查询设计是原因。

尝试使用足够的索引和查询,以允许数据库使用索引。此外尝试了解数据库优化器。

前提条件:您可以自己编写 SQL 语句,而不是绑定到创建低效 SQL 并欺骗 DB 优化器的框架。我经常看到糟糕的框架......

只有当您拥有大量数据(数十亿行)且选择性低并且与其他巨大表的大量连接或复杂递归时,它才会变得困难。

=> 始终寻找问题的根本原因。你会学到很多东西,也会变得更专业。;)

于 2014-01-03T10:05:49.900 回答