KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > cjdbc > controller > core > shutdown > VirtualDatabaseWaitShutdownThread


1 /**
2  * C-JDBC: Clustered JDBC.
3  * Copyright (C) 2005 Emic Networks.
4  * Contact: c-jdbc@objectweb.org
5  *
6  * This library is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU Lesser General Public License as published by the
8  * Free Software Foundation; either version 2.1 of the License, or any later
9  * version.
10  *
11  * This library is distributed in the hope that it will be useful, but WITHOUT
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
14  * for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with this library; if not, write to the Free Software Foundation,
18  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
19  *
20  * Initial developer(s): Emmanuel Cecchet.
21  * Contributor(s): ______________________.
22  */

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

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

47   public VirtualDatabaseWaitShutdownThread(VirtualDatabase vdb)
48   {
49     super(vdb, Constants.SHUTDOWN_WAIT);
50   }
51
52   /**
53    * @see org.objectweb.cjdbc.controller.core.shutdown.ShutdownThread#shutdown()
54    */

55   public void shutdown() throws ShutdownException
56   {
57     this.waitForClientsToDisconnect();
58     this.terminateVirtualDatabaseWorkerThreads();
59     this.disableAllBackends();
60     this.shutdownCacheRecoveryLogAndGroupCommunication();
61   }
62
63 }
Popular Tags