You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by "Shammy Chen (JIRA)" <ji...@apache.org> on 2009/01/13 11:27:04 UTC

[jira] Updated: (ODE-484) Implicit Correlations i.e. Magic session(soap header filled with session information,not p2p mode) failed when ODE heavily loaded

     [ https://issues.apache.org/jira/browse/ODE-484?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Shammy Chen updated ODE-484:
----------------------------


If you can debug ODE in eclipse or sothing else,you will find class org.apache.ode.axis2.SoapExternalService is the source of this problem.Just set a breakpoint at line 273,just before the following statement:

options.setProperty("callbackSessionEndpoint", odeMex.getMyRoleEndpointReference());

When two client come at the same time,variable myRoleEPR of writeHeader method is the same,that is,they have the same reference.We can't control the execution sequence of two thread,so we can't tell what will happen when concurrently executing the following statement:

myRoleEPR.setSessionId(myRoleSessionId);



> Implicit Correlations i.e. Magic session(soap header filled with session information,not p2p mode) failed when ODE heavily loaded
> ---------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ODE-484
>                 URL: https://issues.apache.org/jira/browse/ODE-484
>             Project: ODE
>          Issue Type: Bug
>          Components: BPEL Runtime
>    Affects Versions: 1.2
>         Environment: JDK 5.0+
>            Reporter: Shammy Chen
>
> We use tempo and ODE to deal with human tasks,but when the system is heavily loaded,sothing goes wrong.The following is adapted from the error log:
> 14:47:08,174 ERROR [JacobVPU] Method "run" in class "org.apache.ode.bpel.runtime.INVOKE" threw an unexpected exception.
> org.w3c.dom.DOMException: NOT_FOUND_ERR: An attempt is made to reference a node in a context where it does not exist.
> 	at org.apache.xerces.dom.ParentNode.internalRemoveChild(Unknown Source)
> 	at org.apache.xerces.dom.ParentNode.removeChild(Unknown Source)
> 	at org.apache.xerces.dom.ParentNode.setTextContent(Unknown Source)
> 	at org.apache.ode.bpel.epr.WSAEndpoint.setSessionId(WSAEndpoint.java:63)
> 	at org.apache.ode.axis2.SoapExternalService.writeHeader(SoapExternalService.java:271)
> 	at org.apache.ode.axis2.SoapExternalService.invoke(SoapExternalService.java:124)
> 	at org.apache.ode.axis2.MessageExchangeContextImpl.invokePartner(MessageExchangeContextImpl.java:52)
> 	at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeContextImpl.java:775)
> 	at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:100)
> 	at sun.reflect.GeneratedMethodAccessor30.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	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:835)
> 	at org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(PartnerLinkMyRoleImpl.java:197)
> 	at org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:204)
> 	at org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:372)
> 	at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:326)
> 	at org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:373)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:337)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:336)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:174)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:335)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:332)
> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> and the soap header with session infomation is as follows:
>   <soapenv:Header>
> 		<addr:To xmlns:addr="http://www.w3.org/2005/08/addressing">http://localhost:8080/ode/processes/UserTasks/UserTaskProcess/SERVER/USER/WFmagic_mI5Ioi3yEd2UMrUDYRiGVQ</addr:To>
> 		<addr:Action xmlns:addr="http://www.w3.org/2005/08/addressing">http://agree.com.cn/Userform2/xform/Process/notifyTaskCompletion</addr:Action>
> 		<addr:ReplyTo xmlns:addr="http://www.w3.org/2005/08/addressing">
> 			<addr:Address>http://www.w3.org/2005/08/addressing/anonymous</addr:Address>
> 		</addr:ReplyTo>
> 		<addr:MessageID xmlns:addr="http://www.w3.org/2005/08/addressing">uuid:hqejbhcnphr3ttmu6oosaj</addr:MessageID>
> 		<intalio:session xmlns:intalio="http://www.intalio.com/type/session">hqejbhcnphr3ts7h0ppumk</intalio:session>
> 		<session xmlns="http://www.intalio.com/type/session">hqejbhcnphr3ts7h0ppumk</session>
> 	</soapenv:Header>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.