Author: mriou
Date: Tue Jan 13 08:41:17 2009
New Revision: 734174
URL: http://svn.apache.org/viewvc?rev=734174&view=rev
Log:
ODE-484 Implicit Correlations i.e. Magic session(soap header filled with
session information,not p2p mode) failed when ODE heavily loaded
Modified:
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEService.java
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/soapbinding/SoapExternalService.java
ode/trunk/il-common/src/main/java/org/apache/ode/il/epr/WSAEndpoint.java
Modified: ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEService.java
URL:
http://svn.apache.org/viewvc/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEService.java?rev=734174&r1=734173&r2=734174&view=diff
==============================================================================
--- ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEService.java
(original)
+++ ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ODEService.java Tue Jan
13 08:41:17 2009
@@ -229,8 +229,9 @@
// endpoint in this case, except that it is updated with session
// information (if available).
if (odeMex.getProperty(MessageExchange.PROPERTY_SEP_MYROLE_SESSIONID)
!= null) {
-
_serviceRef.setSessionId(odeMex.getProperty(MessageExchange.PROPERTY_SEP_MYROLE_SESSIONID));
- msgContext.setProperty(CALLBACK_SESSION_ENDPOINT, _serviceRef);
+ WSAEndpoint sessionAwareEndPoint = new WSAEndpoint(_serviceRef);
+
sessionAwareEndPoint.setSessionId(odeMex.getProperty(MessageExchange.PROPERTY_SEP_MYROLE_SESSIONID));
+ msgContext.setProperty("callbackSessionEndpoint",
sessionAwareEndPoint);
}
}
Modified:
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/soapbinding/SoapExternalService.java
URL:
http://svn.apache.org/viewvc/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/soapbinding/SoapExternalService.java?rev=734174&r1=734173&r2=734174&view=diff
==============================================================================
---
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/soapbinding/SoapExternalService.java
(original)
+++
ode/trunk/axis2/src/main/java/org/apache/ode/axis2/soapbinding/SoapExternalService.java
Tue Jan 13 08:41:17 2009
@@ -262,8 +262,9 @@
*/
private void writeHeader(MessageContext ctxt, PartnerRoleMessageExchange
odeMex) {
Options options = ctxt.getOptions();
- WSAEndpoint targetEPR = EndpointFactory.convertToWSA((MutableEndpoint)
odeMex.getEndpointReference());
- WSAEndpoint myRoleEPR = EndpointFactory.convertToWSA((MutableEndpoint)
odeMex.getMyRoleEndpointReference());
+ WSAEndpoint targetWSAEPR =
EndpointFactory.convertToWSA((MutableEndpoint) odeMex.getEndpointReference());
+ WSAEndpoint myRoleWSAEPR =
EndpointFactory.convertToWSA((MutableEndpoint)
odeMex.getMyRoleEndpointReference());
+ WSAEndpoint targetEPR = new WSAEndpoint(targetWSAEPR);
String partnerSessionId =
odeMex.getProperty(MessageExchange.PROPERTY_SEP_PARTNERROLE_SESSIONID);
String myRoleSessionId =
odeMex.getProperty(MessageExchange.PROPERTY_SEP_MYROLE_SESSIONID);
@@ -276,7 +277,8 @@
}
options.setProperty(ODEService.TARGET_SESSION_ENDPOINT, targetEPR);
- if (myRoleEPR != null) {
+ if (myRoleWSAEPR != null) {
+ WSAEndpoint myRoleEPR = new WSAEndpoint(myRoleWSAEPR);
if (myRoleSessionId != null) {
if (__log.isDebugEnabled()) {
__log.debug("MyRole session identifier found for myrole
(callback) WSA endpoint: " + myRoleSessionId);
Modified:
ode/trunk/il-common/src/main/java/org/apache/ode/il/epr/WSAEndpoint.java
URL:
http://svn.apache.org/viewvc/ode/trunk/il-common/src/main/java/org/apache/ode/il/epr/WSAEndpoint.java?rev=734174&r1=734173&r2=734174&view=diff
==============================================================================
--- ode/trunk/il-common/src/main/java/org/apache/ode/il/epr/WSAEndpoint.java
(original)
+++ ode/trunk/il-common/src/main/java/org/apache/ode/il/epr/WSAEndpoint.java
Tue Jan 13 08:41:17 2009
@@ -44,6 +44,11 @@
public WSAEndpoint() {
}
+ // prototype constructor
+ public WSAEndpoint(WSAEndpoint prototype) {
+ _eprElmt =
(Element)DOMUtils.newDocument().importNode(prototype._eprElmt, true);
+ }
+
public WSAEndpoint(Map map) {
this();
fromMap(map);