[
https://issues.apache.org/jira/browse/ODE-527?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12676411#action_12676411
]
Alex Boisvert commented on ODE-527:
-----------------------------------
Ok, I understand better the intent... however the current patch is not the most
appropriate solution because it effectively loses the EPR information, so if
the EPR is valid but not currently resolvable, we lose the information and the
MEX becomes non-recoverable.
I agree that we need a safe JbiEndpointReference.toXML() method... I just think
that if there's a failure, the EPR should be serialized to XML such that there
is no loss of information and such that it can be resolved at a later time
should the endpoint become available again.
I suggest using the standard JBI internal endpoint reference XML schema
(section 5.5.4.1 of the JBI spec):
<jbi:end-point-reference service-name="qname" end-point-name="text"/>
By the way, I just spotted an issue with the current code:
DocumentFragment fragment = getServiceEndpoint().getAsReference(_type);
The argument to getAsReference() should be null, not _type. The method
expects an operation name whereas _type is an EPR type.
> Failure recovery doesn't work while no serviceendpoint is registered
> --------------------------------------------------------------------
>
> Key: ODE-527
> URL: https://issues.apache.org/jira/browse/ODE-527
> Project: ODE
> Issue Type: Bug
> Components: JBI Integration
> Affects Versions: 1.3
> Environment: Servicemix 3.3
> Reporter: Rafal Rusin
> Fix For: 1.3
>
> Attachments: failurerecovery.diff
>
>
> Given a process, which INVOKEs some unregistered service endpoint, I had an
> exception, which was occurring endlessly not regarding any activityRecovery
> settings, such as faultOnFailure=true.
> 12:10:01,683 | ERROR | pool-4-thread-1 | SimpleScheduler |
> duler.simple.SimpleScheduler$4 410 | Error while executing transaction
> org.apache.ode.bpel.iapi.Scheduler$JobProcessorException:
> java.lang.RuntimeException: org.apache.ode.bpel.iapi.ContextException:
> Unknown endpoint: {ABC}Abc:default
> at
> org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:425)
> at
> org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:377)
> at
> org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:386)
> at
> org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:380)
> at
> org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:208)
> at
> org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:379)
> at
> org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:376)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
> at java.util.concurrent.FutureTask.run(FutureTask.java:123)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.RuntimeException:
> org.apache.ode.bpel.iapi.ContextException: Unknown endpoint: {ABC}ABC:default
> at
> org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:464)
> at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
> at
> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:840)
> at
> org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(PartnerLinkMyRoleImpl.java:206)
> at
> org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:211)
> at
> org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:384)
> at
> org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:415)
> ... 11 more
> Caused by: org.apache.ode.bpel.iapi.ContextException: Unknown endpoint:
> {ABC}ABC:default
> at
> org.apache.ode.jbi.JbiEndpointReference.getServiceEndpoint(JbiEndpointReference.java:99)
> at
> org.apache.ode.jbi.JbiEndpointReference.toXML(JbiEndpointReference.java:64)
> at
> org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeContextImpl.java:759)
> at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:100)
> at sun.reflect.GeneratedMethodAccessor96.invoke(Unknown Source)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at
> org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
> ... 17 more
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.