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不會嘗試分配對數據庫來說太大的連接池。否則,您可能會嘗試發佈一些數據庫訪問代碼以供查看。 –