src/org/objectweb/cjdbc/controller/connection/SimpleConnectionManager.java

説明を見る。
00001 00025 package org.objectweb.cjdbc.controller.connection; 00026 00027 import java.io.Serializable; 00028 import java.sql.Connection; 00029 import java.sql.SQLException; 00030 00031 import org.objectweb.cjdbc.common.exceptions.UnreachableBackendException; 00032 import org.objectweb.cjdbc.common.xml.DatabasesXmlTags; 00033 00042 public class SimpleConnectionManager extends AbstractConnectionManager 00043 implements 00044 Serializable 00045 { 00046 private int nbOfConnections = 0; 00047 00062 public SimpleConnectionManager(String backendUrl, String backendName, 00063 String login, String password, String driverPath, String driverClassName) 00064 { 00065 super(backendUrl, backendName, login, password, driverPath, driverClassName); 00066 } 00067 00071 protected Object clone() throws CloneNotSupportedException 00072 { 00073 return new SimpleConnectionManager(backendUrl, backendName, rLogin, 00074 rPassword, driverPath, driverClassName); 00075 } 00076 00082 public void initializeConnections() throws SQLException 00083 { 00084 initialized = true; 00085 } 00086 00092 public void finalizeConnections() throws SQLException 00093 { 00094 initialized = false; 00095 } 00096 00102 public Connection getConnection() throws UnreachableBackendException 00103 { 00104 if (!initialized) 00105 { 00106 logger 00107 .error("Requesting a connection from a non-initialized connection manager"); 00108 return null; 00109 } 00110 00111 addConnection(); 00112 Connection c = getConnectionFromDriver(); 00113 if (c == null) 00114 { 00115 removeConnection(); 00116 logger.error("Unable to get connection from " + backendUrl); 00117 if (nbOfConnections == 0) 00118 { 00119 logger.error("Backend '" + backendUrl + "' is considered unreachable. " 00120 + "(No active connection and none can be opened)"); 00121 throw new UnreachableBackendException(); 00122 } 00123 } 00124 return c; 00125 } 00126 00132 public void releaseConnection(Connection connection) 00133 { 00134 removeConnection(); 00135 try 00136 { 00137 connection.close(); 00138 } 00139 catch (SQLException e) 00140 { 00141 logger.error("Failed to close connection for '" + backendUrl + "'", e); 00142 } 00143 } 00144 00148 public void deleteConnection(Connection c) 00149 { 00150 } 00151 00155 public int getCurrentNumberOfConnections() 00156 { 00157 return nbOfConnections; 00158 } 00159 00160 private synchronized void addConnection() 00161 { 00162 nbOfConnections++; 00163 } 00164 00165 private synchronized void removeConnection() 00166 { 00167 nbOfConnections--; 00168 } 00169 00173 public String getXmlImpl() 00174 { 00175 return "<" + DatabasesXmlTags.ELT_SimpleConnectionManager + "/>"; 00176 } 00177 00178 }

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