You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by az...@apache.org on 2007/05/30 16:42:19 UTC

svn commit: r542830 - in /webservices/axis2/trunk/java/modules/clustering: src/org/apache/axis2/clustering/context/ src/org/apache/axis2/clustering/context/commands/ src/org/apache/axis2/clustering/handlers/ src/org/apache/axis2/clustering/tribes/ test...

Author: azeez
Date: Wed May 30 07:42:18 2007
New Revision: 542830

URL: http://svn.apache.org/viewvc?view=rev&rev=542830
Log:
Fixing some issues with ACK handling.
I'm not sending createContext messages anymore. Contexts are created on demand. This will greatly reduce the NW traffic.


Modified:
    webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/ContextClusteringCommandFactory.java
    webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/DefaultContextManager.java
    webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/CreateServiceGroupContextCommand.java
    webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateServiceContextCommand.java
    webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateServiceGroupContextCommand.java
    webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/handlers/ReplicationHandler.java
    webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/AckManager.java
    webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesUtil.java
    webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/ManageContextTestCase.java

Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/ContextClusteringCommandFactory.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/ContextClusteringCommandFactory.java?view=diff&rev=542830&r1=542829&r2=542830
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/ContextClusteringCommandFactory.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/ContextClusteringCommandFactory.java Wed May 30 07:42:18 2007
@@ -79,9 +79,7 @@
             ServiceGroupContext sgCtx = (ServiceGroupContext) context;
             cmd = new UpdateServiceGroupContextCommand();
             cmd.setUniqueId(UUIDGenerator.getUUID());
-            UpdateServiceGroupContextCommand updateSgCmd =
-                    (UpdateServiceGroupContextCommand) cmd;
-
+            UpdateServiceGroupContextCommand updateSgCmd = (UpdateServiceGroupContextCommand) cmd;
             updateSgCmd.setServiceGroupName(sgCtx.getDescription().getServiceGroupName());
             updateSgCmd.setServiceGroupContextId(sgCtx.getId());
             fillProperties((UpdateContextCommand) cmd,
@@ -92,9 +90,10 @@
             ServiceContext serviceCtx = (ServiceContext) context;
             cmd = new UpdateServiceContextCommand();
             cmd.setUniqueId(UUIDGenerator.getUUID());
-            UpdateServiceContextCommand updateServiceCmd =
-                    (UpdateServiceContextCommand) cmd;
-            updateServiceCmd.setServiceGroupName(serviceCtx.getGroupName());
+            UpdateServiceContextCommand updateServiceCmd = (UpdateServiceContextCommand) cmd;
+            String sgName =
+                    serviceCtx.getServiceGroupContext().getDescription().getServiceGroupName();
+            updateServiceCmd.setServiceGroupName(sgName);
             updateServiceCmd.setServiceGroupContextId(serviceCtx.getServiceGroupContext().getId());
             updateServiceCmd.setServiceName(serviceCtx.getAxisService().getName());
             fillProperties((UpdateContextCommand) cmd,

Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/DefaultContextManager.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/DefaultContextManager.java?view=diff&rev=542830&r1=542829&r2=542830
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/DefaultContextManager.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/DefaultContextManager.java Wed May 30 07:42:18 2007
@@ -51,15 +51,15 @@
     }
 
     public String addContext(final AbstractContext context) throws ClusteringFault {
-        ContextClusteringCommand cmd = ContextClusteringCommandFactory.getCreateCommand(context);
-        processor.process(cmd);
-        return cmd.getUniqueId();
+//        ContextClusteringCommand cmd = ContextClusteringCommandFactory.getCreateCommand(context);
+//        processor.process(cmd);
+        return null;
     }
 
     public String removeContext(AbstractContext context) throws ClusteringFault {
-        ContextClusteringCommand cmd = ContextClusteringCommandFactory.getRemoveCommand(context);
-        processor.process(cmd);
-        return cmd.getUniqueId();
+//        ContextClusteringCommand cmd = ContextClusteringCommandFactory.getRemoveCommand(context);
+//        processor.process(cmd);
+        return null;
     }
 
     public String updateContext(AbstractContext context) throws ClusteringFault {

Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/CreateServiceGroupContextCommand.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/CreateServiceGroupContextCommand.java?view=diff&rev=542830&r1=542829&r2=542830
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/CreateServiceGroupContextCommand.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/CreateServiceGroupContextCommand.java Wed May 30 07:42:18 2007
@@ -26,12 +26,12 @@
 public class CreateServiceGroupContextCommand extends ServiceGroupContextCommand {
 
     public void execute(ConfigurationContext configContext) throws ClusteringFault {
-        AxisServiceGroup axisServiceGroup =
+        /*AxisServiceGroup axisServiceGroup =
                 configContext.getAxisConfiguration()
                         .getServiceGroup(serviceGroupName);
         ServiceGroupContext ctx = new ServiceGroupContext(configContext, axisServiceGroup);
         ctx.setId(serviceGroupContextId);
-        configContext.registerServiceGroupContextintoSoapSessionTable(ctx);
+        configContext.registerServiceGroupContextintoSoapSessionTable(ctx);*/
     }
 
     public int getCommandType() {

Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateServiceContextCommand.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateServiceContextCommand.java?view=diff&rev=542830&r1=542829&r2=542830
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateServiceContextCommand.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateServiceContextCommand.java Wed May 30 07:42:18 2007
@@ -15,14 +15,15 @@
  */
 package org.apache.axis2.clustering.context.commands;
 
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
 import org.apache.axis2.clustering.ClusteringFault;
 import org.apache.axis2.clustering.context.PropertyUpdater;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.PropertyDifference;
-import org.apache.axis2.context.ServiceGroupContext;
 import org.apache.axis2.context.ServiceContext;
+import org.apache.axis2.context.ServiceGroupContext;
 import org.apache.axis2.description.AxisService;
-import org.apache.axis2.AxisFault;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -50,6 +51,34 @@
                 propertyUpdater.updateProperties(serviceContext);
             } catch (AxisFault e) {
                 throw new ClusteringFault(e);
+            }
+        } else {
+            sgCtx = configurationContext.getServiceGroupContext(serviceGroupContextId);
+            AxisService axisService;
+            try {
+                axisService = configurationContext.getAxisConfiguration().getService(serviceName);
+            } catch (AxisFault axisFault) {
+                throw new ClusteringFault(axisFault);
+            }
+            String scope = axisService.getScope();
+            if (sgCtx == null) {
+                sgCtx = new ServiceGroupContext(configurationContext,
+                                                configurationContext.getAxisConfiguration().
+                                                        getServiceGroup(serviceGroupName));
+                sgCtx.setId(serviceGroupContextId);
+                if (scope.equals(Constants.SCOPE_APPLICATION)) {
+                    configurationContext.
+                            addServiceGroupContextintoApplicatoionScopeTable(sgCtx);
+                } else if (scope.equals(Constants.SCOPE_SOAP_SESSION)) {
+                    configurationContext.
+                            registerServiceGroupContextintoSoapSessionTable(sgCtx);
+                }
+            }
+            try {
+                ServiceContext serviceContext = sgCtx.getServiceContext(axisService, false);
+                propertyUpdater.updateProperties(serviceContext);
+            } catch (AxisFault axisFault) {
+                throw new ClusteringFault(axisFault);
             }
         }
     }

Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateServiceGroupContextCommand.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateServiceGroupContextCommand.java?view=diff&rev=542830&r1=542829&r2=542830
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateServiceGroupContextCommand.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateServiceGroupContextCommand.java Wed May 30 07:42:18 2007
@@ -20,6 +20,7 @@
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.PropertyDifference;
 import org.apache.axis2.context.ServiceGroupContext;
+import org.apache.axis2.description.AxisServiceGroup;
 
 import java.util.HashMap;
 
@@ -31,13 +32,21 @@
 
     private PropertyUpdater propertyUpdater = new PropertyUpdater();
 
-    public void execute(ConfigurationContext configurationContext) throws ClusteringFault {
+    public void execute(ConfigurationContext configContext) throws ClusteringFault {
         ServiceGroupContext sgCtx =
-                configurationContext.getServiceGroupContext(serviceGroupContextId);
-        System.err.println("###### Gonna update SG prop in " + serviceGroupContextId + "===" + sgCtx);
-        if (sgCtx != null) {
-            propertyUpdater.updateProperties(sgCtx);
+                configContext.getServiceGroupContext(serviceGroupContextId);
+
+        // If the ServiceGroupContext is not found, create it
+        if (sgCtx == null) {
+            AxisServiceGroup axisServiceGroup =
+                    configContext.getAxisConfiguration()
+                            .getServiceGroup(serviceGroupName);
+            sgCtx = new ServiceGroupContext(configContext, axisServiceGroup);
+            sgCtx.setId(serviceGroupContextId);
+            configContext.registerServiceGroupContextintoSoapSessionTable(sgCtx);  // TODO: Check this
         }
+        System.err.println("###### Gonna update SG prop in " + serviceGroupContextId + "===" + sgCtx);
+        propertyUpdater.updateProperties(sgCtx);
     }
 
     public int getCommandType() {

Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/handlers/ReplicationHandler.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/handlers/ReplicationHandler.java?view=diff&rev=542830&r1=542829&r2=542830
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/handlers/ReplicationHandler.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/handlers/ReplicationHandler.java Wed May 30 07:42:18 2007
@@ -101,11 +101,11 @@
                 // the message with UUID 'msgUUID'
                 while (!contextManager.isMessageAcknowledged(msgUUID)) {
                     if(System.currentTimeMillis() - start > 20000){
-                        throw new ClusteringFault("ACKs not received from all members within 1 min. " +
+                        throw new ClusteringFault("ACKs not received from all members within 20 sec. " +
                                                   "Aborting wait.");
                     }
                     try {
-                        Thread.sleep(2);
+                        Thread.sleep(20);
                     } catch (InterruptedException e) {
                         log.error(e);
                         break;

Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/AckManager.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/AckManager.java?view=diff&rev=542830&r1=542829&r2=542830
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/AckManager.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/AckManager.java Wed May 30 07:42:18 2007
@@ -37,6 +37,7 @@
 
     public static void addAcknowledgement(String messageUniqueId,
                                           String memberId) {
+        System.err.println("######### Added ACK for msg " + messageUniqueId + " from member " + memberId);
         MessageACK ack = (MessageACK) messageAckTable.get(messageUniqueId);
         if (ack != null) {
             List memberList = ack.getMemberList();
@@ -46,6 +47,7 @@
 
     public static boolean isMessageAcknowledged(String messageUniqueId,
                                                 ChannelSender sender) throws ClusteringFault {
+        System.err.println("########## Call to isMessageAcknowledged for msg UUID " + messageUniqueId);
         boolean isAcknowledged = false;
         MessageACK ack = (MessageACK) messageAckTable.get(messageUniqueId);
         List memberList = ack.getMemberList();

Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesUtil.java?view=diff&rev=542830&r1=542829&r2=542830
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesUtil.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesUtil.java Wed May 30 07:42:18 2007
@@ -30,7 +30,7 @@
         if (members != null) {
             int length = members.length;
             if (length > 0) {
-                log.info("Members of current Tribes...");
+                log.info("Members of current cluster");
                 for (int i = 0; i < length; i++) {
                     byte[] hostBts = members[i].getHost();
                     String host = null;
@@ -39,14 +39,10 @@
                             host = host == null ? ("" + hostBts[j]) : (host + "." + hostBts[j]);
                         }
                     }
-
-                    String port = "" + members[i].getPort();
-                    log.info("Member " + (i + 1) + " NAME:" + members[i].getName() + " HOST:"
-                             + host + "  PORT:" + port);
-
+                    log.info("Member " + (i + 1) + " " + members[i].getName());
                 }
             } else {
-                log.info("No members in current Tribe");
+                log.info("No members in current cluster");
             }
         }
     }

Modified: webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/ManageContextTestCase.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/ManageContextTestCase.java?view=diff&rev=542830&r1=542829&r2=542830
==============================================================================
--- webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/ManageContextTestCase.java (original)
+++ webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/ManageContextTestCase.java Wed May 30 07:42:18 2007
@@ -38,7 +38,7 @@
             return;
         }
 
-        //Adding contexts to the Node1
+        /*//Adding contexts to the Node1
         ServiceGroupContext serviceGroupContext1 =
                 configurationContext1.createServiceGroupContext(serviceGroup1);
         String sgcID = UUIDGenerator.getUUID();
@@ -65,7 +65,7 @@
 
         ServiceContext serviceContext2 = (ServiceContext) iter.next();
         assertNotNull(serviceContext2);
-        assertEquals(serviceContext2.getName(), serviceName);
+        assertEquals(serviceContext2.getName(), serviceName);*/
 
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org