0
我只为整个程序创建一个会话工厂,并且每次创建时我都想要保留/更新/查询smth。一个新的实体经理,但我总是遇到很多连接错误。任何人都可以给我一个礼物吗?在我看来,它不能是增加MySql中允许的连接数的最佳解决方案。我用C3P0进行池化。Entitymanager,连接太多
我只为整个程序创建一个会话工厂,并且每次创建时我都想要保留/更新/查询smth。一个新的实体经理,但我总是遇到很多连接错误。任何人都可以给我一个礼物吗?在我看来,它不能是增加MySql中允许的连接数的最佳解决方案。我用C3P0进行池化。Entitymanager,连接太多
每次调用EntityManager
时,都可以尝试使用像这样的try-catch-finally模板。
EntityManager em = ... //However you get an em.
try {
em.getTransaction().begin();
// ... Put your persistence code here.
em.getTransaction().commit();
} catch (Exception ex) {
em.getTransaction().rollback();
throw ex;
} finally {
em.close();
}
非常感谢 – Aruscher
当您完成后,您是否在'EntityManger'上运行'close()'?你的数据库服务器能否被其他东西重载? –
在每次持久性和查询操作后,我在EntityManager对象上运行close()并且数据库服务器是本地的,但是来自mysql的最大连接数是默认值。如果即时将最大连接数增加到500或不适用。否则我会在后面的执行中出错 – Aruscher
增加连接限制是一个不好的解决方案。我会确保C3P0不会尝试分配对数据库来说太大的连接池。否则,您可能会尝试发布一些数据库访问代码以供查看。 –