package jef.database.innerpool;
import java.sql.Connection;
import java.sql.SQLException;
import jef.database.datasource.IRoutingDataSource;
/**
* 路由场合下的连接池
* @author jiyi
*
*/
public interface IRoutingConnectionPool extends IUserManagedPool{
/**
* 得到路由数据源,这是由多个实际数据源组成的一个容器
* @return
*/
IRoutingDataSource getRoutingDataSource();
/**
* 如果RoutingDataSource中带了一个连接缓存,那么返回缓存的连接。
* 如果缓存没有,那么就用datasource创建一个连接
* @return 不能为null,总是要返回一个连接
*/
public Connection getCachedConnection(String ds)throws SQLException ;
/**
* 将连接放回缓存。如果缓存放不下,那么就关闭
*/
public void putback(String ds,Connection conn);
}