package com.microsoft.sqlserver.jdbc;
import java.sql.SQLException;
import java.util.logging.Level;
import javax.naming.Reference;
import javax.sql.ConnectionPoolDataSource;
import javax.sql.PooledConnection;
public class SQLServerConnectionPoolDataSource extends SQLServerDataSource implements ConnectionPoolDataSource {
@Override
public PooledConnection getPooledConnection() throws SQLException {
if (loggerExternal.isLoggable(Level.FINER))
loggerExternal.entering(getClassNameLogging(), "getPooledConnection");
PooledConnection pcon = getPooledConnection(getUser(), getPassword());
if (loggerExternal.isLoggable(Level.FINER))
loggerExternal.exiting(getClassNameLogging(), "getPooledConnection", pcon);
return pcon;
}
@Override
public PooledConnection getPooledConnection(String user, String password) throws SQLException {
if (loggerExternal.isLoggable(Level.FINER))
loggerExternal.entering(getClassNameLogging(), "getPooledConnection",
new Object[] {user, "Password not traced"});
SQLServerPooledConnection pc = new SQLServerPooledConnection(this, user, password);
if (loggerExternal.isLoggable(Level.FINER))
loggerExternal.exiting(getClassNameLogging(), "getPooledConnection", pc);
return pc;
}
@Override
public Reference getReference() {
if (loggerExternal.isLoggable(Level.FINER))
loggerExternal.entering(getClassNameLogging(), "getReference");
Reference ref = getReferenceInternal("com.microsoft.sqlserver.jdbc.SQLServerConnectionPoolDataSource");
if (loggerExternal.isLoggable(Level.FINER))
loggerExternal.exiting(getClassNameLogging(), "getReference", ref);
return ref;
}
private Object writeReplace() throws java.io.ObjectStreamException {
return new SerializationProxy(this);
}
private void readObject(java.io.ObjectInputStream stream) throws java.io.InvalidObjectException {
throw new java.io.InvalidObjectException("");
}
private static class SerializationProxy implements java.io.Serializable {
private final Reference ref;
private static final long serialVersionUID = 654661379842314126L;
SerializationProxy(SQLServerConnectionPoolDataSource ds) {
ref = ds.getReferenceInternal(null);
}
private Object readResolve() {
SQLServerConnectionPoolDataSource ds = new SQLServerConnectionPoolDataSource();
ds.initializeFromReference(ref);
return ds;
}
}
}