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

Reply via email to