クラス org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread

org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThreadに対する継承グラフ

Inheritance graph
[凡例]
org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThreadのコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

説明

Executes all the work for shutting down a virtual database. This implies waiting for current clients to finish their transaction or disconnect them. Shutdown databases by shutting down backends and storing checkpoints

作者:
Nicolas Modrzyk
バージョン:
1.0

VirtualDatabaseShutdownThread.java46 行で定義されています。

Public メソッド

 VirtualDatabaseShutdownThread (VirtualDatabase db, int ilevel)
void shutdownFast () throws ShutdownException
void shutdownImmediate () throws ShutdownException
void shutdownSmart () throws ShutdownException

変数

VirtualDatabase database
int shutdownLevel

Private メソッド

void terminateClients ()
void closeVirtualDatabase ()
void waitForDisconnectClients ()
void shutdownBackends (String checkpoint)


コンストラクタとデストラクタ

org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.VirtualDatabaseShutdownThread VirtualDatabase  db,
int  ilevel
 

Prepare the thread for shutting down.

引数:
db the database to shutdown
ilevel the level Smart,Fast,Immediate
VirtualDatabaseShutdownThread.java57 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.shutdownLevel.

00058 { 00059 super(ilevel, ShutdownThread.DATABASE, db.getName()); 00060 this.database = db; 00061 shutdownLevel = ilevel; 00062 }


メソッド

void org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.closeVirtualDatabase  )  [private]
 

VirtualDatabaseShutdownThread.java112 行で定義されています。

参照元 org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.shutdownFast(), org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.shutdownImmediate(), と org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.shutdownSmart().

00113 { 00114 if (database.isDistributed()) 00115 { 00116 logger.info("Shutting down group communication"); 00117 ((DistributedVirtualDatabase) database).quitChannel(); 00118 } 00119 }

void org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.shutdownBackends String  checkpoint  )  [private]
 

VirtualDatabaseShutdownThread.java154 行で定義されています。

参照先 org.objectweb.cjdbc.controller.backend.DatabaseBackend.finalizeConnections().

参照元 org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.shutdownFast(), と org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.shutdownSmart().

00155 { 00156 if (database.getRequestManager().getRecoveryLog() != null) 00157 { 00158 try 00159 { 00160 // disable and checkpoint for recovery log 00161 database.storeBackendsInfo(); 00162 database.disableAllBackendForCheckpoint(checkpoint); 00163 00164 } 00165 catch (Exception ve) 00166 { 00167 logger.error(Translate 00168 .get("controller.shutdown.backends.exception", ve)); 00169 } 00170 } 00171 else 00172 { 00173 // no recovery log, so just disable backends 00174 try 00175 { 00176 database.disableAllBackend(); 00177 } 00178 catch (Exception vde) 00179 { 00180 logger.error(Translate.get("controller.shutdown.backends.exception", 00181 vde)); 00182 } 00183 } 00184 00185 ArrayList backends = database.getBackends(); 00186 int size = backends.size(); 00187 DatabaseBackend backend; 00188 for (int i = 0; i < size; i++) 00189 { 00190 backend = (DatabaseBackend) backends.get(i); 00191 try 00192 { 00193 backend.finalizeConnections(); 00194 } 00195 catch (SQLException e) 00196 { 00197 logger 00198 .error(Translate.get("controller.shutdown.backends.exception", e)); 00199 } 00200 } 00201 }

void org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.shutdownFast  )  throws ShutdownException [virtual]
 

参照:
org.objectweb.cjdbc.controller.core.shutdown.ShutdownThread.shutdownFast()

org.objectweb.cjdbc.controller.core.shutdown.ShutdownThreadを実装しています.

VirtualDatabaseShutdownThread.java67 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.closeVirtualDatabase(), org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.shutdownBackends(), と org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.terminateClients().

00068 { 00069 terminateClients(); 00070 closeVirtualDatabase(); 00071 shutdownBackends("Fast Shutdown " + new Date()); 00072 }

void org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.shutdownImmediate  )  throws ShutdownException [virtual]
 

参照:
org.objectweb.cjdbc.controller.core.shutdown.ShutdownThread.shutdownImmediate()

org.objectweb.cjdbc.controller.core.shutdown.ShutdownThreadを実装しています.

VirtualDatabaseShutdownThread.java77 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.closeVirtualDatabase().

00078 { 00079 closeVirtualDatabase(); 00080 }

void org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.shutdownSmart  )  throws ShutdownException [virtual]
 

参照:
org.objectweb.cjdbc.controller.core.shutdown.ShutdownThread.shutdownSmart()

org.objectweb.cjdbc.controller.core.shutdown.ShutdownThreadを実装しています.

VirtualDatabaseShutdownThread.java85 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.closeVirtualDatabase(), org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.shutdownBackends(), と org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.waitForDisconnectClients().

00086 { 00087 closeVirtualDatabase(); 00088 waitForDisconnectClients(); 00089 shutdownBackends("Smart Shutdown " + new Date()); 00090 }

void org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.terminateClients  )  [private]
 

VirtualDatabaseShutdownThread.java92 行で定義されています。

参照先 org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.database, org.objectweb.cjdbc.common.log.Trace.info(), と org.objectweb.cjdbc.controller.virtualdatabase.VirtualDatabaseWorkerThread.shutdown().

参照元 org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.shutdownFast().

00093 { 00094 logger.info("Shutting down clients"); 00095 ArrayList threads = database.getActiveThreads(); 00096 logger.info(Translate.get("controller.shutdown.active.threads", "" 00097 + threads.size())); 00098 VirtualDatabaseWorkerThread wt; 00099 synchronized (threads) 00100 { 00101 for (int i = 0; i < threads.size(); i++) 00102 { 00103 logger.info(Translate.get("controller.shutdown.database.thread", 00104 new String[]{database.getName(), "" + i})); 00105 wt = ((VirtualDatabaseWorkerThread) threads.get(i)); 00106 wt.shutdown(); 00107 } 00108 } 00109 database.getActiveThreads().clear(); 00110 }

void org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.waitForDisconnectClients  )  [private]
 

VirtualDatabaseShutdownThread.java121 行で定義されています。

参照元 org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.shutdownSmart().

00122 { 00123 boolean wait = true; 00124 while (wait) 00125 { 00126 ArrayList threads = database.getActiveThreads(); 00127 synchronized (threads) 00128 { 00129 int nbThreads = threads.size(); 00130 logger.debug(Translate.get("controller.shutdown.active.threads", "" 00131 + nbThreads)); 00132 if (nbThreads == 0) 00133 { 00134 wait = false; 00135 } 00136 } 00137 if (wait) 00138 { 00139 synchronized (this) 00140 { 00141 try 00142 { 00143 wait(1000); 00144 } 00145 catch (InterruptedException e) 00146 { 00147 // Ignore 00148 } 00149 } 00150 } 00151 } 00152 }


変数

VirtualDatabase org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.database [package]
 

VirtualDatabaseShutdownThread.java48 行で定義されています。

参照元 org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.terminateClients().

int org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.shutdownLevel [package]
 

org.objectweb.cjdbc.controller.core.shutdown.ShutdownThreadを再定義しています。

VirtualDatabaseShutdownThread.java49 行で定義されています。

参照元 org.objectweb.cjdbc.controller.core.shutdown.VirtualDatabaseShutdownThread.VirtualDatabaseShutdownThread().


このクラスの説明は次のファイルから生成されました:
CJDBCversion1.0.4に対してTue Oct 12 15:16:42 2004に生成されました。 doxygen 1.3.8