Web アプリケーションを数回クリックしただけで、「FATAL: 申し訳ありませんが、クライアントが多すぎます」というメッセージが表示されます。このアプリは JSF 2 を使用して作成されています。なぜこれが起こっているのか、私にはまったくわかりません。私は、接続されているのは私だけであることを知っています。pgadminIII を使用して接続しているかどうかに関係なく発生します。私のアプリはとてつもなくシンプルです。
役立つ可能性のある関連ビットを次に示します。
接続に使用するシングルトン クラスを次に示します。
public class ConnectionSingleton{
private static Connection con;
public static Connection getConnection() throws SQLException
{
if (con == null || con.isClosed())
{
try
{
Class.forName("org.postgresql.Driver");
con = DriverManager.getConnection(
"jdbc:postgresql://127.0.0.1:5432/sc_data", "postgres",
"password");
} catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return con;
}
}
一般的な使用例を次に示します。
try
{
Connection con = ConnectionSingleton.getConnection();
PreparedStatement stat = con.prepareStatement("select * from song_song where id = ?");
stat.setInt(1, id);
ResultSet res = stat.executeQuery();
if (res.next())
{
id = res.getInt("id");
name = res.getString("s_name");
link = res.getString("s_link");
owner = res.getInt("s_owner");
critNumber = res.getInt("s_crit_number");
retval="found";
}
else
{
retval = "no song";
}
res.close();
con.close();
stat.close();
} catch (SQLException e)
{
retval = "no song";
e.printStackTrace();
}
ここに含めるものは他に考えられません。それだけです。何か案は?