だから私は毎分データベースを照会するサーブレットを持っているので、1 つの接続だけを永久に開いていると思います (まあ、webapp が停止するまで)。したがって、init() で接続を開き、destroy() で閉じています。問題は、Tomcat でアプリを停止した後に DB を見ると、接続がまだ開いているということです。何が起こっていますか?
これが私のコードです:
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 メソッドにログインを追加しました。変。
では、サーブレットではない方法で記述してみましょう...