I tried to implement this. But I get an exception as follows.
I used "ic.getMessageExchangeDAO().getInstance().getInstanceId()" to get the
instanceID.
And the InstanceManagementService is used to suspend the instance. The stack
is as follows.
DEBUG - GeronimoLog.debug(66) | The system is checking for the operation
using the following WSAAction:
DEBUG - GeronimoLog.debug(66) | Checking for Operation using SOAP message
body's first child's local name : suspend
DEBUG - GeronimoLog.debug(66) | Found operation
org.apache.axis2.description.inoutaxisoperat...@47b708
org.apache.axis2.AxisFault: java.lang.RuntimeException: Invocation of method
suspend in management interface failed: The process "null" does not exist.
at
org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:512)
at
org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:370)
at
org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:416)
at
org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:228)
at
org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
at
org.apache.ode.bpel.clients.imapi.InstanceManagementStub.suspend(InstanceManagementStub.java:3205)
at
org.apache.ode.bpel.clients.imapi.InstanceManagementServiceClient.suspend(InstanceManagementServiceClient.java:30)
at
org.apache.ode.bpel.intercept.DebuggerInterceptor.onPartnerInvoked(DebuggerInterceptor.java:66)
at
org.apache.ode.bpel.intercept.InterceptorInvoker$2.invoke(InterceptorInvoker.java:47)
at
org.apache.ode.bpel.engine.ODEProcess.processInterceptors(ODEProcess.java:333)
at
org.apache.ode.bpel.engine.ODEWSProcess.invokePartner(ODEWSProcess.java:592)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeContextImpl.java:653)
at
org.apache.ode.bpel.rtrep.v2.RuntimeInstanceImpl.invoke(RuntimeInstanceImpl.java:628)
at org.apache.ode.bpel.rtrep.v2.INVOKE.wsdlInvoke(INVOKE.java:108)
at org.apache.ode.bpel.rtrep.v2.INVOKE.run(INVOKE.java:71)
at sun.reflect.GeneratedMethodAccessor44.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:450)
at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
at
org.apache.ode.bpel.rtrep.v2.RuntimeInstanceImpl.execute(RuntimeInstanceImpl.java:690)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:758)
at
org.apache.ode.bpel.engine.BpelRuntimeContextImpl.executeCreateInstance(BpelRuntimeContextImpl.java:746)
at
org.apache.ode.bpel.engine.ODEProcess.executeCreateInstance(ODEProcess.java:194)
at org.apache.ode.bpel.engine.ODEWSProcess$1.call(ODEWSProcess.java:387)
at org.apache.ode.bpel.engine.ODEWSProcess$1.call(ODEWSProcess.java:386)
at
org.apache.ode.bpel.engine.ODEProcess$ProcessCallable.call(ODEProcess.java:758)
at
org.apache.ode.bpel.engine.BpelInstanceWorker.doInstanceWork(BpelInstanceWorker.java:171)
at
org.apache.ode.bpel.engine.BpelInstanceWorker.execInCurrentThread(BpelInstanceWorker.java:106)
at
org.apache.ode.bpel.engine.ODEProcess.doInstanceWork(ODEProcess.java:314)
at
org.apache.ode.bpel.engine.ODEWSProcess.invokeProcess(ODEWSProcess.java:385)
at
org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl.doInvoke(MyRoleMessageExchangeImpl.java:129)
at
org.apache.ode.bpel.engine.UnreliableMyRoleMessageExchangeImpl$1.call(UnreliableMyRoleMessageExchangeImpl.java:46)
at
org.apache.ode.bpel.engine.UnreliableMyRoleMessageExchangeImpl$1.call(UnreliableMyRoleMessageExchangeImpl.java:45)
at
org.apache.ode.bpel.engine.ODEProcess$ProcessCallable.call(ODEProcess.java:758)
at
org.apache.ode.bpel.engine.Contexts.execTransaction(Contexts.java:106)
at
org.apache.ode.bpel.engine.BpelServerImpl$TransactedCallable.call(BpelServerImpl.java:1022)
at
org.apache.ode.bpel.engine.BpelServerImpl$ServerCallable.call(BpelServerImpl.java:1002)
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)
Regards,
Denis Weerasiri,
CSE-UoM
http://ddweerasiri.blogspot.com
On Sun, Aug 2, 2009 at 12:20 AM, Denis Weerasiri <[email protected]>wrote:
> Hi all,
> I'm developing a web based BPEL debugger for ODE for my Google Summer of
> Code project under ASF.
> Here I have explained on how to debug an instance for a given process.
>
>
> 1. Store the process ID in the ODE server.
> 2. Invoke the process (may use a SoapUI implementation)
> 3. Then at the ODEServer, when a new instance created a MEX Interceptor
> which listen to new instance , will check whether the created instance has
> the type of the process needed to be debugged. (For this it will be used
> the
> stored process ID in 1.)
> 4. If the instance is a type of the process need to be debugged, then
> that instance will be suspended.
> 5. Then the suspended instance id should be sent back to the Web
> interface, so then breakpoints specified by the user can be added to the
> suspended instance via the service which exposes BpelManagementFacadeImpl
> class. (Still don't know how to send it back to the front end)
> 6. Then User can use step option to go from each breakpoint to the
> other.
>
> For more clarifications I added a sequence diagram as well.
>