所以我有一个每分钟查询数据库的 servlet,所以我想我只会永远打开一个连接(嗯,直到 webapp 停止)。因此我在 init() 中打开一个连接并在 destroy() 中关闭它。问题是,如果我在 tomcat 中停止应用程序后查看数据库,则连接仍然打开。发生了什么?
这是我的代码:
public void init() throws ServletException
{
try
{
// Prepare the DB connection
DriverManager.registerDriver(new com.informix.jdbc.IfxDriver());
informixConnection = DriverManager.getConnection(DBURL, DBUsername, DBPassword);
}
catch(SQLException e)
{
throw new UnavailableException("Error connecting to the database");
}
}
public void destroy()
{
try
{
informixConnection.close();
}
catch(Exception e)
{
}
}
还有一个实际执行查询的方法和一个 doGet 以便用户可以获得最新的响应,但我还没有完成这些(尽管我已经测试了它们并且数据库连接有效)。
我不知道为什么这不起作用。我在 destroy 方法中添加了一些日志记录,以确认它在应用程序关闭并且突然开始工作时被调用。诡异的。
好的,现在以非 servlet 的方式编写它...