我在tomcat 6 conf/context.xml 和WEB.XML都配置好了
然后设置连接数量为100,在开发阶段一直都使用正常
然后昨天突然报出异常,说TCP/IP 连接出现问题,最大连接数量已经到达我的源码:
1.获取DataSource
public class CacheDataSource {
private static CacheDataSource cache;
static{
cache = new CacheDataSource();
}
private DataSource dataSource;
private CacheDataSource(){
try {
javax.naming.Context initContext = new javax.naming.InitialContext();
dataSource =(DataSource) initContext.lookup("java:/comp/env/jdbc/Conn");
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static CacheDataSource getInstance(){
return cache;
}
public DataSource getDataSource(){
return dataSource;
}
}//2.获取连接:
public class DaoBase implements IConnection,Itranscation {
CacheDataSource ds;
Connection conn;
public DaoBase(){
try {
conn = ds.getInstance().getDataSource().getConnection();
if(conn == null){
System.out.println("null");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Connection getConnection() {
return conn;
}
。
在编写JDBC代码的时候,连接一直都没关,我查看了资料,说连接不需要自己维护,不需要显示的关闭
tomcat会帮我们处理,请高手解答此问题
然后设置连接数量为100,在开发阶段一直都使用正常
然后昨天突然报出异常,说TCP/IP 连接出现问题,最大连接数量已经到达我的源码:
1.获取DataSource
public class CacheDataSource {
private static CacheDataSource cache;
static{
cache = new CacheDataSource();
}
private DataSource dataSource;
private CacheDataSource(){
try {
javax.naming.Context initContext = new javax.naming.InitialContext();
dataSource =(DataSource) initContext.lookup("java:/comp/env/jdbc/Conn");
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static CacheDataSource getInstance(){
return cache;
}
public DataSource getDataSource(){
return dataSource;
}
}//2.获取连接:
public class DaoBase implements IConnection,Itranscation {
CacheDataSource ds;
Connection conn;
public DaoBase(){
try {
conn = ds.getInstance().getDataSource().getConnection();
if(conn == null){
System.out.println("null");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Connection getConnection() {
return conn;
}
。
在编写JDBC代码的时候,连接一直都没关,我查看了资料,说连接不需要自己维护,不需要显示的关闭
tomcat会帮我们处理,请高手解答此问题
请详细说明哦
贴下你在XML的配置吧。。
TOMCAT是神啊?你不冲水,它怎么会知道你上完厕所了没有?它怎么敢替你冲水?
要手动的close();
try {
conn = ds.getInstance().getDataSource().getConnection();
if(conn == null){
System.out.println("null");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Connection getConnection() {
return conn;
}
既然给外部提供了getConnection()方法 ,如果是我,会做成 private Connection setConnection();
不要给构造,而且 所有的connection 完全可以单例 不允许new 纯属个人意见
及Tomcat处理流程