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);


Reply via email to