简体   繁体   English

Wso2 BPS:无此类通道错误

[英]Wso2 BPS: No such channel Error

I'm using wso2 bps 2.1.2 for running simple bpel process with tree invokes called one by one in loop. 我正在使用wso2 bps 2.1.2来运行简单的bpel进程,并在循环中逐一调用树调用。 The loop is around one hundred times. 循环大约是一百次。 Problem is that sometimes process hang in running state. 问题是有时进程会挂起运行状态。 In logs I get error: 在日志中,我得到错误:

[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)

I can't find any useful information about this error. 我找不到有关此错误的任何有用信息。 I'm using oracle database. 我正在使用oracle数据库。 I tried to modify bps.xml with: 我尝试使用以下方法修改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>

But this didn't help. 但这没有帮助。

Process is really simple it look like this: 过程非常简单,看起来像这样:

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

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

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

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

How can I solve “No such channel” errors? 如何解决“没有这样的渠道”错误?

Thanks Tomek 谢谢托梅克

We identified one issue that was causing this problem and fixed it. 我们确定了一个导致此问题的问题,并将其修复。 It was due to a missing process instance lock in the ode run-time embedded within BPS. 这是由于BPS中嵌入的ode运行时中缺少流程实例锁。 We found this issue and fixed it. 我们发现了此问题并予以解决。

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

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

If you can attach your sample scenario to the jira, it would help us add another test case. 如果您可以将示例方案附加到jira,它将帮助我们添加另一个测试用例。 The fix is already available in the trunk and will be available in the next release. 该修复程序已在主干中提供,并且将在下一版本中提供。

Regards Nandika 问候南迪卡

I had remove waits from process and everything start working without problems. 我从流程中删除了等待,一切开始正常运行。 It seems that there is some bug in < wait > activity in WSO2 BPS 2.1.2. WSO2 BPS 2.1.2中的<wait>活动中似乎存在一些错误。 In BPS 3.0.0 it seams that waits are working. 在BPS 3.0.0中,接缝正在等待工作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM