Hibernateを使用してJava Webアプリケーションを開発していますが、ルックアップテーブルを動的に作成しているため、JDBCを使用する場所があります。Hibernateのsession.connectionエラー:「ユーザーが多すぎます」
私のWebアプリを使用して数分後、私はこのエラーを取得する:
com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too many connections"
私は(session.connectionを使用していることを知っている)が廃止されましたが、私はちょうど基礎となるJDBC接続を取得したいです。私はsession.doWork()を使って実験しましたが、以前と同じようにエラーが発生しました。
ドメイン・レイヤー:
/**
* Goes through the list of lookupTableAbstractions and persists each one
* @param lookupData
*/
public void updateLookupValues(List<LookupTableAbstraction> lookupData)
{
lookupTablesData.dropAllLookupTables(lookupData);
lookupTablesData.createLookupTables(lookupData);
for (LookupTableAbstraction lookupTable : lookupData)
lookupTablesData.persistLookupTableValues(lookupTable);
}
データレイヤー:私は問題を修正任意の提案
は、確かにあなたが何らかの形で接続をリークしているように思わ:あなたと仮定すると
は実際、このようなそれを命名。これを確認するには、アプリケーションが使用している接続数を監視できますか?統計が有効な場合、セッションファクトリからこの値を取得できます。 session.getSessionFactory()。getStatistics()。getConnectionCount()。 – Pace
コードにログインしている例外はありますか? – axtavt
こんにちはPace、 私は統計情報を有効にしています。私はアプリケーションを使用しているので、一貫して1つの接続にとどまっています。 こんにちはaxtavt、例外がスローされるのは、「あまりにも多くのユーザー」の例外が発生した場合だけです。 – jondb