2013-03-26 2 views
1

Я использую wso2 bps 2.1.2 для запуска простого процесса bpel с вызовами дерева, вызываемыми один за другим в цикле. Цикл примерно сто раз. Проблема в том, что иногда процесс зависает в рабочем состоянии. В журналах я получаю ошибку:Wso2 BPS: Нет такого канала Ошибка

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

Как я могу решить «Нет такого канала» ошибки?

Благодаря Томек

ответ

0

Я был удалить ждет от процесса, и все начинают работать без проблем. Кажется, что есть некоторая ошибка в < wait> активность в WSO2 BPS 2.1.2. В BPS 3.0.0 швы, которые ждут, работают.

1

Мы определили один вопрос, который вызывает эту проблему и установил ее. Это было связано с отсутствием блокировки экземпляра процесса во время выполнения ode, встроенного в BPS. Мы обнаружили эту проблему и исправили ее.

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

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

Если вы можете прикрепить пример сценария к JIRA, это помогло бы нам добавить еще один тестовый случай. Исправление уже доступно в багажнике и будет доступно в следующей версии.

С уважением Nandika

+0

Я видел эти проблемы. Я исправляю патч от него до своих бит, но без каких-либо результатов. Как вы можете видеть в стеке-трассе от 989 проблемы, это связано с классом PartnerLinkMyRoleImpl с не вызовом в моей трассе стека. Так что это нечто другое. Цикл в моем процессе повторяется около 100 раз. Примерно в 50% случаев процесс проходит с успехом в покое, он зависает с ошибкой в ​​журнале. – Kendzi

+0

Я убрал ожидания от процесса, и все начинает работать без проблем. Кажется, что есть некоторая ошибка в активности . – Kendzi

Смежные вопросы