src/org/objectweb/cjdbc/controller/recoverylog/AbstractRecoveryLog.java

説明を見る。
00001 00025 package org.objectweb.cjdbc.controller.recoverylog; 00026 00027 import java.sql.SQLException; 00028 import java.util.ArrayList; 00029 00030 import org.objectweb.cjdbc.common.i18n.Translate; 00031 import org.objectweb.cjdbc.common.log.Trace; 00032 import org.objectweb.cjdbc.common.sql.AbstractWriteRequest; 00033 import org.objectweb.cjdbc.common.sql.StoredProcedure; 00034 import org.objectweb.cjdbc.common.xml.DatabasesXmlTags; 00035 import org.objectweb.cjdbc.common.xml.XmlComponent; 00036 import org.objectweb.cjdbc.controller.requestmanager.TransactionMarkerMetaData; 00037 00046 public abstract class AbstractRecoveryLog implements XmlComponent 00047 { 00048 00049 static Trace logger = Trace 00050 .getLogger("org.objectweb.cjdbc.controller.recoverylog"); 00051 00052 private long recoveringNb = 0; 00053 00060 public abstract void logRequest(AbstractWriteRequest request) 00061 throws SQLException; 00062 00070 public abstract void logRequest(StoredProcedure proc, boolean isRead) 00071 throws SQLException; 00072 00073 // 00074 // Transaction management 00075 // 00076 00083 public abstract long getLastTransactionId() throws SQLException; 00084 00091 public abstract void begin(TransactionMarkerMetaData tm) throws SQLException; 00092 00099 public abstract void commit(TransactionMarkerMetaData tm) throws SQLException; 00100 00107 public abstract void rollback(TransactionMarkerMetaData tm) 00108 throws SQLException; 00109 00110 // 00111 // Checkpoint Management 00112 // 00113 00120 public abstract void storeCheckpoint(String checkpointName) 00121 throws SQLException; 00122 00130 public abstract void storeCheckpoint(String checkpointName, long requestId) 00131 throws SQLException; 00132 00140 public abstract void removeCheckpoint(String checkpointName) 00141 throws SQLException; 00142 00153 public abstract long getCheckpointRequestId(String checkpointName) 00154 throws SQLException; 00155 00168 public abstract RecoveryTask recoverNextRequest(long previousRequestId) 00169 throws SQLException; 00170 00174 public synchronized void beginRecovery() 00175 00176 { 00177 recoveringNb++; 00178 } 00179 00186 public synchronized void endRecovery() 00187 { 00188 recoveringNb--; 00189 if (recoveringNb == 0) 00190 { 00191 try 00192 { 00193 cleanRecoveryLog(); 00194 } 00195 catch (SQLException e) 00196 { 00197 logger.error(Translate.get("recovery.cleaning.failed", e)); 00198 } 00199 } 00200 } 00201 00208 public synchronized boolean isRecovering() 00209 { 00210 return recoveringNb > 0; 00211 } 00212 00218 public abstract void cleanRecoveryLog() throws SQLException; 00219 00225 public String getXml() 00226 00227 { 00228 StringBuffer info = new StringBuffer(); 00229 info.append("<" + DatabasesXmlTags.ELT_RecoveryLog + ">"); 00230 info.append(getXmlImpl()); 00231 info.append("</" + DatabasesXmlTags.ELT_RecoveryLog + ">"); 00232 return info.toString(); 00233 } 00234 00238 public abstract String getXmlImpl(); 00239 00247 public abstract ArrayList getCheckpointNames() throws SQLException; 00248 00258 public abstract void storeBackendInfo(String databaseName, 00259 String backendName, String checkpoint,int backendState) throws SQLException; 00260 00270 public abstract BackendRecoveryInfo getBackendInfo(String databaseName, 00271 String backendName) throws SQLException; 00272 00279 public abstract String[][] getData(); 00280 00281 }

CJDBCversion1.0.4に対してTue Oct 12 15:16:03 2004に生成されました。 doxygen 1.3.8