【问题标题】:Wso2 BPS: No such channel ErrorWso2 BPS:没有这样的通道错误
【发布时间】:2013-06-05 17:04:13
【问题描述】:

我正在使用 wso2 bps 2.1.2 运行简单的 bpel 进程,并在循环中一一调用树调用。循环大约是一百次。问题是有时进程会在运行状态下挂起。在日志中我得到错误:

[2013-03-25 14:44:17,897] ERROR - BpelEngineImpl - Scheduled job failed; jobDetail=JobDetails( instanceId: 14109433 mexId: null processId: null type: TIMER channel: 11513 correlatorId: null correlationKeySet: null retryCount: null inMem: false detailsExt: {})
java.lang.IllegalArgumentException: No such channel; id=11513
    at org.apache.ode.jacob.vpu.ExecutionQueueImpl.findChannelFrame(ExecutionQueueImpl.java:205)
    at org.apache.ode.jacob.vpu.ExecutionQueueImpl.consumeExport(ExecutionQueueImpl.java:232)
    at org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.importChannel(JacobVPU.java:369)
    at org.apache.ode.jacob.JacobObject.importChannel(JacobObject.java:47)
    at org.apache.ode.bpel.engine.BpelRuntimeContextImpl$5.run(BpelRuntimeContextImpl.java:964)
    at sun.reflect.GeneratedMethodAccessor44.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    at java.lang.reflect.Method.invoke(Method.java:611)
    at org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
    at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
    at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:879)
    at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.timerEvent(BpelRuntimeContextImpl.java:968)
    at org.apache.ode.bpel.engine.BpelProcess.handleJobDetails(BpelProcess.java:478)
    at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:560)
    at org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:445)
    at org.apache.ode.scheduler.simple.SimpleScheduler$RunJob$1.call(SimpleScheduler.java:537)
    at org.apache.ode.scheduler.simple.SimpleScheduler$RunJob$1.call(SimpleScheduler.java:531)
    at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:284)
    at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:239)
    at org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:531)
    at org.apache.ode.scheduler.simple.SimpleScheduler$RunJob.call(SimpleScheduler.java:515)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:314)
    at java.util.concurrent.FutureTask.run(FutureTask.java:149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919)
    at java.lang.Thread.run(Thread.java:738)

我找不到有关此错误的任何有用信息。我正在使用 oracle 数据库。我尝试修改 bps.xml:

<tns:OpenJPAConfig>
  <tns:property name="openjpa.FlushBeforeQueries" value="true"/>
  <!-- added this line as for https://wso2.org/jira/browse/CARBON-7500  (use also Oracle 11g Driver!!) -->
  <tns:property name="openjpa.jdbc.DBDictionary" value="oracle(batchLimit=0)"/>
</tns:OpenJPAConfig>

但这没有帮助。

过程真的很简单,看起来像这样:

<forEach counterName="count"  parallel="no" >

    < doXslTransform …>
    <wait 1s>
    <invoke ...>

    <doXslTransform …>
    <wait 1s>
    <invoke ...>

    < doXslTransform …>
    <wait 1s>
    <invoke ...>
</forEach>

如何解决“没有这样的频道”错误?

感谢托梅克

【问题讨论】:

    标签: wso2 bpel


    【解决方案1】:

    我们发现了一个导致此问题的问题并修复了它。这是由于 BPS 中嵌入的 ode 运行时缺少流程实例锁。我们发现了这个问题并修复了它。

    https://issues.apache.org/jira/browse/ODE-989

    https://wso2.org/jira/browse/BPS-218

    如果您可以将示例场景附加到 jira,这将有助于我们添加另一个测试用例。该修复程序已在主干中可用,并将在下一个版本中可用。

    问候 南迪卡

    【讨论】:

    • 我已经看到了这个问题。我将补丁从它移植到我的 bps 但没有任何结果。正如您在问题 989 的堆栈跟踪中看到的那样,它涉及类 PartnerLinkMyRoleImpl,而在我的堆栈跟踪中没有调用。所以这是不同的东西。我的过程中的循环重复了大约 100 次。在大约 50% 的情况下,进程在休息时成功通过,它在日志中挂起并出现错误。
    • 我已经从进程中删除了等待,一切都开始正常工作了。 活动中似乎存在一些错误。
    【解决方案2】:

    我已经从进程中删除了等待,一切都开始正常工作了。 WSO2 BPS 2.1.2 中的 活动似乎存在一些错误。在 BPS 3.0.0 中,等待的接缝正在工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      相关资源
      最近更新 更多