You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by oy...@apache.org on 2008/01/15 12:11:15 UTC

svn commit: r612081 - in /db/derby/code/trunk/java: engine/org/apache/derby/database/ engine/org/apache/derby/iapi/store/access/ engine/org/apache/derby/iapi/store/raw/ engine/org/apache/derby/impl/db/ engine/org/apache/derby/impl/jdbc/ engine/org/apac...

Author: oysteing
Date: Tue Jan 15 03:11:14 2008
New Revision: 612081

URL: http://svn.apache.org/viewvc?rev=612081&view=rev
Log:
DERBY-3189: Replication: Add connection url command option for stopping master (Contributed by V Narayanan)

Modified:
    db/derby/code/trunk/java/engine/org/apache/derby/database/Database.java
    db/derby/code/trunk/java/engine/org/apache/derby/iapi/store/access/AccessFactory.java
    db/derby/code/trunk/java/engine/org/apache/derby/iapi/store/raw/RawStoreFactory.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/db/BasicDatabase.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/RAMAccessManager.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/RawStore.java
    db/derby/code/trunk/java/engine/org/apache/derby/loc/messages.xml
    db/derby/code/trunk/java/shared/org/apache/derby/shared/common/reference/SQLState.java

Modified: db/derby/code/trunk/java/engine/org/apache/derby/database/Database.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/database/Database.java?rev=612081&r1=612080&r2=612081&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/database/Database.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/database/Database.java Tue Jan 15 03:11:14 2008
@@ -128,6 +128,13 @@
     public void startReplicationMaster(String host, int port, 
                                        String replicationMode)
         throws SQLException;
+    
+    /**
+     * Stop the replication master role for the given database.
+     * 
+     * @exception SQLException Thrown on error
+     */
+    public void stopReplicationMaster() throws SQLException;
 
 	/**
 	  * Freeze the database temporarily so a backup can be taken.

Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/store/access/AccessFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/store/access/AccessFactory.java?rev=612081&r1=612080&r2=612081&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/store/access/AccessFactory.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/store/access/AccessFactory.java Tue Jan 15 03:11:14 2008
@@ -228,6 +228,14 @@
                                        String replicationMode)
         throws StandardException;
 
+    /**
+     * Stop the replication master role for this database.
+     * 
+     * @exception StandardException Standard Derby exception policy,
+     * thrown on error.
+     */
+    public void stopReplicationMaster() throws StandardException;
+
 	/**
 	  * Freeze the database temporarily so a backup can be taken.
 	  * <P>Please see Derby on line documentation on backup and restore.

Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/store/raw/RawStoreFactory.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/store/raw/RawStoreFactory.java?rev=612081&r1=612080&r2=612081&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/store/raw/RawStoreFactory.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/store/raw/RawStoreFactory.java Tue Jan 15 03:11:14 2008
@@ -694,6 +694,14 @@
     public void startReplicationMaster(String host, int port,
                                        String replicationMode)
         throws StandardException;
+    
+    /**
+     * Stop the replication master role for this database.
+     * 
+     * @exception StandardException Standard Derby exception policy,
+     * thrown on error.
+     */
+    public void stopReplicationMaster() throws StandardException;
 
 	/**
 	  * Freeze the database temporarily so a backup can be taken.

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/db/BasicDatabase.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/db/BasicDatabase.java?rev=612081&r1=612080&r2=612081&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/db/BasicDatabase.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/db/BasicDatabase.java Tue Jan 15 03:11:14 2008
@@ -376,6 +376,19 @@
             throw PublicAPI.wrapStandardException(se);
         }
     }
+    
+    /**
+     * Stop the replication master role for this database.
+     * 
+     * @exception SQLException Thrown on error
+     */
+    public void stopReplicationMaster()  throws SQLException {
+        try {
+            af.stopReplicationMaster();
+        } catch (StandardException se) {
+            throw PublicAPI.wrapStandardException(se);
+        }
+    }
 
 	public void freeze() throws SQLException
 	{

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java?rev=612081&r1=612080&r2=612081&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedConnection.java Tue Jan 15 03:11:14 2008
@@ -558,8 +558,7 @@
         // replication - depending on the security mechanisms
         // Derby is running under.
 
-        // Waiting for Derby-2954:
-        // tr.getDatabase().stopReplicationMaster();
+        tr.getDatabase().stopReplicationMaster();
     }
 
 	/**

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/RAMAccessManager.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/RAMAccessManager.java?rev=612081&r1=612080&r2=612081&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/RAMAccessManager.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/store/access/RAMAccessManager.java Tue Jan 15 03:11:14 2008
@@ -928,6 +928,16 @@
         rawstore.startReplicationMaster(host, port, replicationMode);
     }
 
+    /**
+     * Stop the replication master role for this database.
+     * 
+     * @exception StandardException Standard Derby exception policy,
+     * thrown on error.
+     */
+    public void stopReplicationMaster() throws StandardException {
+        rawstore.stopReplicationMaster();
+    }
+
 	public void freeze() throws StandardException
 	{
 		rawstore.freeze();

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/RawStore.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/RawStore.java?rev=612081&r1=612080&r2=612081&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/RawStore.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/store/raw/RawStore.java Tue Jan 15 03:11:14 2008
@@ -499,6 +499,32 @@
         masterFactory.startMaster(this, dataFactory, logFactory);
 
     }
+    
+    /**
+     * Stop the replication master role for this database.
+     * 
+     * @exception StandardException Standard Derby exception policy,
+     * thrown on error.
+     */
+    public void stopReplicationMaster() throws StandardException {
+        
+        MasterFactory masterFactory = null;
+        
+        if (isReadOnly()) {
+            throw StandardException.newException(
+                      SQLState.CANNOT_REPLICATE_READONLY_DATABASE);
+        }
+
+        try {
+            masterFactory = (MasterFactory) 
+                Monitor.findServiceModule(this, getMasterFactoryModule());
+        }
+        catch (StandardException se) {
+            throw StandardException.newException(
+                      SQLState.REPLICATION_UNABLE_TO_STOP_MASTER);
+        }
+        masterFactory.stopMaster();
+    }
 
 	public void freeze() throws StandardException
 	{

Modified: db/derby/code/trunk/java/engine/org/apache/derby/loc/messages.xml
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/loc/messages.xml?rev=612081&r1=612080&r2=612081&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/loc/messages.xml (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/loc/messages.xml Tue Jan 15 03:11:14 2008
@@ -4757,6 +4757,11 @@
                 <text>The connection attempts to the replication slave for the database {0} exceeded the specified timeout period.</text>
                 <arg>dbname</arg>
             </msg>
+            
+            <msg>
+                <name>XRE07</name>
+                <text>Could not stop replication because the database is not in replication master mode.</text>
+            </msg>
 
 
         </family>

Modified: db/derby/code/trunk/java/shared/org/apache/derby/shared/common/reference/SQLState.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/shared/org/apache/derby/shared/common/reference/SQLState.java?rev=612081&r1=612080&r2=612081&view=diff
==============================================================================
--- db/derby/code/trunk/java/shared/org/apache/derby/shared/common/reference/SQLState.java (original)
+++ db/derby/code/trunk/java/shared/org/apache/derby/shared/common/reference/SQLState.java Tue Jan 15 03:11:14 2008
@@ -1764,5 +1764,6 @@
     String REPLICATION_CONNECTION_EXCEPTION                        = "XRE04";
     String REPLICATION_LOG_OUT_OF_SYNCH                            = "XRE05";
     String REPLICATION_MASTER_TIMED_OUT                            = "XRE06";
+    String REPLICATION_UNABLE_TO_STOP_MASTER                       = "XRE07";
 }