Author: kwall
Date: Tue Jul  8 21:40:01 2014
New Revision: 1608956

URL: http://svn.apache.org/r1608956
Log:
QPID-5885: [Java Broker] Virtualhostnode to replace real virtualhost with 
replica virtualhost in the event that the BDB HA goes into detached state

Modified:
    
qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java
    
qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java
    
qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/HAClusterTwoNodeTest.java
    
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java

Modified: 
qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java?rev=1608956&r1=1608955&r2=1608956&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java
 (original)
+++ 
qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java
 Tue Jul  8 21:40:01 2014
@@ -846,23 +846,6 @@ public class ReplicatedEnvironmentFacade
         {
             try
             {
-                if (environment.isValid())
-                {
-                    environment.setStateChangeListener(new 
StateChangeListener()
-                    {
-                        @Override
-                        public void stateChange(StateChangeEvent 
stateChangeEvent) throws RuntimeException
-                        {
-                            if (LOGGER.isDebugEnabled())
-                            {
-                                LOGGER.debug(
-                                        "When restarting a state change event 
is received on NOOP listener for state:"
-                                        + stateChangeEvent.getState());
-                            }
-                        }
-                    });
-                }
-
                 try
                 {
                     closeSequences();

Modified: 
qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java?rev=1608956&r1=1608955&r2=1608956&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java
 (original)
+++ 
qpid/trunk/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java
 Tue Jul  8 21:40:01 2014
@@ -46,7 +46,6 @@ import com.sleepycat.je.rep.utilint.Host
 import org.apache.log4j.Logger;
 
 import org.apache.qpid.server.configuration.updater.Task;
-import org.apache.qpid.server.configuration.updater.VoidTask;
 import org.apache.qpid.server.logging.messages.ConfigStoreMessages;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.BrokerModel;
@@ -104,6 +103,7 @@ public class BDBHAVirtualHostNodeImpl ex
     @ManagedAttributeField(afterSet="postSetPriority")
     private int _priority;
 
+
     @ManagedAttributeField(afterSet="postSetQuorumOverride")
     private int _quorumOverride;
 
@@ -426,11 +426,22 @@ public class BDBHAVirtualHostNodeImpl ex
 
     private void onReplica()
     {
+        createReplicaVirtualHost();
+    }
+
+
+    private void onDetached()
+    {
+        createReplicaVirtualHost();
+    }
+
+    private void createReplicaVirtualHost()
+    {
         try
         {
             closeVirtualHostIfExist();
 
-            Map<String, Object> hostAttributes = new HashMap<String, Object>();
+            Map<String, Object> hostAttributes = new HashMap<>();
             hostAttributes.put(VirtualHost.MODEL_VERSION, 
BrokerModel.MODEL_VERSION);
             hostAttributes.put(VirtualHost.NAME, getGroupName());
             hostAttributes.put(VirtualHost.TYPE, "BDB_HA_REPLICA");
@@ -442,11 +453,6 @@ public class BDBHAVirtualHostNodeImpl ex
         }
     }
 
-    private void onDetached()
-    {
-        closeVirtualHostIfExist();
-    }
-
     protected void closeVirtualHostIfExist()
     {
         VirtualHost<?,?,?> virtualHost = getVirtualHost();
@@ -478,11 +484,9 @@ public class BDBHAVirtualHostNodeImpl ex
                 onReplica();
                 break;
             case DETACHED:
-                LOGGER.error("BDB replicated node in detached state, therefore 
passivating.");
                 onDetached();
                 break;
             case UNKNOWN:
-                LOGGER.warn("BDB replicated node in unknown state (hopefully 
temporarily)");
                 break;
             default:
                 LOGGER.error("Unexpected state change: " + state);

Modified: 
qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/HAClusterTwoNodeTest.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/HAClusterTwoNodeTest.java?rev=1608956&r1=1608955&r2=1608956&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/HAClusterTwoNodeTest.java
 (original)
+++ 
qpid/trunk/qpid/java/bdbstore/systests/src/main/java/org/apache/qpid/server/store/berkeleydb/HAClusterTwoNodeTest.java
 Tue Jul  8 21:40:01 2014
@@ -22,11 +22,7 @@ package org.apache.qpid.server.store.ber
 import java.io.File;
 
 import javax.jms.Connection;
-import javax.jms.Destination;
 import javax.jms.JMSException;
-import javax.jms.Message;
-import javax.jms.MessageConsumer;
-import javax.jms.Session;
 import javax.management.ObjectName;
 
 import org.apache.qpid.jms.ConnectionURL;
@@ -36,8 +32,6 @@ import org.apache.qpid.test.utils.QpidBr
 
 public class HAClusterTwoNodeTest extends QpidBrokerTestCase
 {
-    private static final long RECEIVE_TIMEOUT = 5000l;
-
     private static final String VIRTUAL_HOST = "test";
 
     private static final String MANAGED_OBJECT_QUERY = 
"org.apache.qpid:type=BDBHAMessageStore,name=" + ObjectName.quote(VIRTUAL_HOST);
@@ -123,20 +117,22 @@ public class HAClusterTwoNodeTest extend
         assertProducingConsuming(connection);
     }
 
-    public void 
testPersistentOperationsFailOnNonDesignatedPrimarysAfterSecondaryStopped() 
throws Exception
+    public void 
testPersistentOperationsFailOnNonDesignatedPrimaryAfterSecondaryStopped() 
throws Exception
     {
         startCluster(false);
         
_clusterCreator.stopNode(_clusterCreator.getBrokerPortNumberOfSecondaryNode());
-        final Connection connection = getConnection(_brokerFailoverUrl);
-        assertNotNull("Expected to get a valid connection to primary", 
connection);
+
         try
         {
+            Connection connection = getConnection(_brokerFailoverUrl);
             assertProducingConsuming(connection);
-            fail("JMS peristent operations succeded on Master 'not designated 
primary' buy they should fail as replica is not available");
+            fail("Exception not thrown");
         }
         catch(JMSException e)
         {
-            // JMSException should be thrown on transaction start/commit
+            // JMSException should be thrown either on getConnection, or 
produce/consume
+            // depending on whether the relative timing of the node 
discovering that the
+            // secondary has gone.
         }
     }
 
@@ -166,7 +162,7 @@ public class HAClusterTwoNodeTest extend
         assertFalse("Expected secondary node to NOT be set as designated 
primary", secondaryStoreBean.getDesignatedPrimary());
     }
 
-    public void testSecondaryDesignatedAsPrimaryAfterOrginalPrimaryStopped() 
throws Exception
+    public void testSecondaryDesignatedAsPrimaryAfterOriginalPrimaryStopped() 
throws Exception
     {
         startCluster(true);
         final ManagedBDBHAMessageStore storeBean = 
getStoreBeanForNodeAtBrokerPort(_clusterCreator.getBrokerPortNumberOfSecondaryNode());

Modified: 
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
URL: 
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java?rev=1608956&r1=1608955&r2=1608956&view=diff
==============================================================================
--- 
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
 (original)
+++ 
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
 Tue Jul  8 21:40:01 2014
@@ -1052,7 +1052,6 @@ public class QpidBrokerTestCase extends 
      */
     public InitialContext getInitialContext() throws NamingException
     {
-        _logger.info("get InitialContext");
         if (_initialContext == null)
         {
             _initialContext = new InitialContext();
@@ -1070,7 +1069,6 @@ public class QpidBrokerTestCase extends 
      */
     public AMQConnectionFactory getConnectionFactory() throws NamingException
     {
-        _logger.info("get ConnectionFactory");
         if (_connectionFactory == null)
         {
             if (Boolean.getBoolean(PROFILE_USE_SSL))



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to