Apache 1.3.26 + Tomcat 3.3.1 + PostgreSQL 7.2.1 を使っています。
あるDBのコネクションプーリングをするクラス(ConnectionPool)を作成して、
下のような感じにしているのですが、

pubilc class TheDB {
 private static TheDB instance = null;
 private ConnectionPool pool = null;

 private TheDB {
  // serverの設定読み込み
  pool = new ConnectionPool(上で読み込んだ設定);
 }

 public static TheDB getInstance() {
  if (instance == null) instance = TheDB();
  return instance;
 }
 :
}

これを使っていると、(この部分とは別の)classを変更したときに
新しいTheDBインスタンスが作られて、DBへのコネクションがどんどん増える、
という状態になってしまいました。(古いインスタンスが残っているのだと思いますが…)
仕方ないので今はTomcatを再起動しています。
Javaは始めて日が浅いのでよく分からないのですが、参照されなくなった
インスタンスはGCに回収されないのでしょうか?