KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > continuent > sequoia > controller > core > shutdown > VirtualDatabaseWaitShutdownThread


1 /**
2  * Sequoia: Database clustering technology.
3  * Copyright (C) 2005 Emic Networks.
4  * Contact: sequoia@continuent.org
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  * Initial developer(s): Emmanuel Cecchet.
19  * Contributor(s): ______________________.
20  */

21
22 package org.continuent.sequoia.controller.core.shutdown;
23
24 import org.continuent.sequoia.common.exceptions.ShutdownException;
25 import org.continuent.sequoia.common.util.Constants;
26 import org.continuent.sequoia.controller.virtualdatabase.VirtualDatabase;
27
28 /**
29  * This thread waits for all clients to terminate their connections before
30  * shutting down the virtual database.
31  *
32  * @author <a HREF="mailto:emmanuel.cecchet@emicnetworks.com">Emmanuel Cecchet
33  * </a>
34  * @version 1.0
35  */

36 public class VirtualDatabaseWaitShutdownThread
37     extends VirtualDatabaseShutdownThread
38 {
39
40   /**
41    * Creates a new <code>VirtualDatabaseSafeShutdownThread</code> object
42    *
43    * @param vdb the VirtualDatabase to shutdown
44    */

45   public VirtualDatabaseWaitShutdownThread(VirtualDatabase vdb)
46   {
47     super(vdb, Constants.SHUTDOWN_WAIT);
48   }
49
50   /**
51    * @see org.continuent.sequoia.controller.core.shutdown.ShutdownThread#shutdown()
52    */

53   public void shutdown() throws ShutdownException
54   {
55     this.waitForClientsToDisconnect();
56     this.terminateVirtualDatabaseWorkerThreads();
57     this.disableAllBackendsWithCheckpoint();
58     virtualDatabase.setShutdownCheckpoint();
59     this.shutdownCacheRecoveryLogAndGroupCommunication();
60   }
61
62 }
Popular Tags