私はFirebirdのデータベースJava JDBCとFirebirdのデータベース接続が切断されるのはなぜですか?
public static Connection dbStatic;
...
public void getConnection(){
FBWrappingDataSource DataSource = new FBWrappingDataSource();
DataSource.setDatabase("localhost/3050:C:/MyDatabase.FDB");
DataSource.setDescription("TNS Development Database");
DataSource.setType("TYPE4");
DataSource.setEncoding("ISO8859_1");
DataSource.setLoginTimeout(10);
try {
dbStatic = DataSource.getConnection("UserName", "Password");
} catch (SQLException e) {
e.printStackTrace();
}
}
に接続するために、次のコードを使用して...と切り離すために、次の午前:
...
dbStatic.close();
...
私は、Windows 7から32ビットにruningてのFirebird 2.1を使用していますマシンは、1.7、Jaybirdバージョン2.2.8、Win7-32bit上で実行されているTomcatのバージョン7.xxからverstionジャワで、ブラウザは(新しめ)何かまたは他のWin XP SP3を実行しているChromeのバージョンです。
私は接続の数を見てIBExpertと呼ばれるサードパーティ製のツールを使用し、および/または私はこの文を実行します。select * from mon$attachments;
私は(.close後にデータベースへの接続数を見てみると)ステートメントを実行すると、数値は減少しません。何故ですか?十分に長く待つか、Tomcatサーバーを再起動すると、接続数が減少します。ブラウザを閉じても接続には影響しません。
[ 'FBWrappingDataSource']のJavadocの最初の行(http://www.firebirdsql.org/file/documentation/drivers_documentation/java/2.2.2/docs/org/firebirdsql/pool/FBWrappingDataSource.html )**接続プール**を含むDataSourceの実装** – Andreas
あなたは 'DataSource'を破壊していないようです... –
@ Arioch'Theファイナライザが呼び出されると、最終的に破棄されます。 OPが予期せずに接続が切断されることで時折問題が発生しないならば、私は驚くだろう。これは、比較的短命のアプリケーションでなければなりません(または、JVMがファイナライザを呼び出すときに接続が使用されなくなります)。 –