mysql5.5 Too many connections

Test_LD 2012-06-08 01:42:06
ERROR org.hibernate.util.JDBCExceptionReporter:78 - Data source rejected establishment of connection, message from server: "Too many connections"


用hibernateTemplate 存数据时,连续存了11次,之后就会出现上面的错误

网上的方法发现mysql5.5安装目录下根本找不到对应的文件 my-innodb-heavy-4G.ini 下有max_connections 修改了下还是

相同的错误,没起作用

求帮忙
...全文
259 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
norain 2014-03-19
  • 打赏
  • 举报
回复
引用 8 楼 ycj80217 的回复:
楼主连接泄露 建议配置HIBERNATE SESSION 关闭策略 参见HIBERNATE指南 找到如下章节 hibernate.connection.release_mode 指定Hibernate在何时释放JDBC连接. 默认情况下,直到Session被显式关闭或被断开连接时,才会释放JDBC连接. 对于应用程序服务器的JTA数据源, 你应当使用after_statement, 这样在每次JDBC调用后,都会主动的释放连接. 对于非JTA的连接, 使用after_transaction在每个事务结束时释放连接是合理的. auto将为JTA和CMT事务策略选择after_statement, 为JDBC事务策略选择after_transaction. 取值 auto (默认) | on_close | after_transaction | after_statement 注意,这些设置仅对通过SessionFactory.openSession得到的Session起作用。对于通过SessionFactory.getCurrentSession得到的Session,所配置的CurrentSessionContext实现控制这些Session的连接释放模式。请参阅第 2.5 节 “上下文相关的(Contextual)Session”。
请问如何配置HIBERNATE SESSION 关闭策略
ycj80217 2012-06-20
  • 打赏
  • 举报
回复
楼主连接泄露 建议配置HIBERNATE SESSION 关闭策略
参见HIBERNATE指南 找到如下章节
hibernate.connection.release_mode 指定Hibernate在何时释放JDBC连接. 默认情况下,直到Session被显式关闭或被断开连接时,才会释放JDBC连接. 对于应用程序服务器的JTA数据源, 你应当使用after_statement, 这样在每次JDBC调用后,都会主动的释放连接. 对于非JTA的连接, 使用after_transaction在每个事务结束时释放连接是合理的. auto将为JTA和CMT事务策略选择after_statement, 为JDBC事务策略选择after_transaction.
取值 auto (默认) | on_close | after_transaction | after_statement

注意,这些设置仅对通过SessionFactory.openSession得到的Session起作用。对于通过SessionFactory.getCurrentSession得到的Session,所配置的CurrentSessionContext实现控制这些Session的连接释放模式。请参阅第 2.5 节 “上下文相关的(Contextual)Session”。
孤独人生 2012-06-10
  • 打赏
  • 举报
回复
我估计是你的操作数据库的时候连接没有关闭把,所以造成这种情况了
Test_LD 2012-06-08
  • 打赏
  • 举报
回复
public void save(Article article) {
this.hibernateTemplate.save(article);
this.hibernateTemplate.flush();
this.hibernateTemplate.clear();
}
这地方存的
Test_LD 2012-06-08
  • 打赏
  • 举报
回复
import java.sql.SQLException;
import java.util.List;

import javax.annotation.Resource;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Component;

import com.ld.blog.common.MyConfig;
import com.ld.blog.dao.ArticleDao;
import com.ld.blog.model.Article;
import com.ld.blog.service.ListenService;

@Component("ArticleDao")
public class ArticleDaoImpl implements ArticleDao{
private HibernateTemplate hibernateTemplate;
public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}

@Resource
public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}

public void save(Article article) {
this.hibernateTemplate.save(article);
this.hibernateTemplate.flush();
this.hibernateTemplate.clear();
}

public List showArticle(int userId) {
ListenService ls=(ListenService) MyConfig.getServiceObj("ListenService");
List listenId=ls.getListenByUserId(userId);
String tempStr="";
String hql="";
if(!listenId.isEmpty())
{



for(int i=0;i<listenId.size();i++)
{
tempStr=tempStr+listenId.get(i).toString()+",";
}
tempStr=tempStr+userId;
hql="from Article a where a.userId in("+tempStr+") order by a.id desc";
}
else
{
hql="from Article a where a.userId="+userId+"order by a.id desc";
}

System.out.println(hql);
List articleList=this.hibernateTemplate.find(hql);

this.hibernateTemplate.flush();
this.hibernateTemplate.clear();
return articleList;
}

//ʵ�ַ�ҳ��ʾ
public List findByPageBean(final int start, final int pageSize,final String hql) throws Exception
{
/* ListenService ls=(ListenService) MyConfig.getServiceObj("ListenService");
List listenId=ls.getListenByUserId(userId);
String tempStr="";
for(int i=0;i<listenId.size();i++)
{
tempStr=tempStr+listenId.get(i).toString()+",";
}
tempStr=tempStr+userId;*/
List list = null;
// hql="from Article a where a.userId in("+tempStr+") order by a.id desc";
try {
list = this.getHibernateTemplate().executeFind(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {

Query query = session.createQuery(hql);
query.setFirstResult(start);
query.setMaxResults(pageSize);
List list = query.list();
return list;
}
});
} catch (Exception e) {
throw e;
}
return list;
}

public int getArticleNum(int userId) {
return this.showArticle(userId).size();
}

public int getPageNum(int userId) {
return this.getArticleNum(userId)/10+1;
}

public int getMyArticleNum(int userId) {
// TODO Auto-generated method stub
String hql="from Article a where a.userId="+userId;
List l=this.hibernateTemplate.find(hql);
return l.size();
}
}
huangbomeizi 2012-06-08
  • 打赏
  • 举报
回复
估计连接没有关闭
「已注销」 2012-06-08
  • 打赏
  • 举报
回复
悲剧了。
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
ERROR org.hibernate.util.JDBCExceptionReporter:78 - Data source rejected establishment of connection, message from server: "Too many connections"


用hibernateTemplate 存数据时,连续存了11次,之后就会出现上面的错误

……
[/Quote]
代码贴出来一下。。
L13843199721 2012-06-08
  • 打赏
  • 举报
回复
连接数过多?
我也新手不会用hibernate
不懂
jdbc还能看懂点。。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧