1

標準的な手順として、指定された時間 (デフォルト: 8) 非アクティブ状態が続くと、MySql 接続が失われます。そのような接続が失われたことを特定した後にmysqlサーバーに再接続するには、単純に行いますconnection = DriverManager.getConnection(url, user, password);

私は接続プールを使用しておらず、このトリックは以前の接続損失関連の投稿で言及されていないため、コードが後で何らかの副作用を生成するかどうか疑問に思いますか? (上記のインスタンスの後にこのコードをテストしたところ、sessionlistner が session.invalidate() 呼び出しの後に呼び出されていないことがわかったので、そう言います。)

4

2 に答える 2

1

接続オブジェクトの処理方法によっては、失われた接続オブジェクトのクライアント側での小さなメモリリークが発生する可能性があります。しかし、おそらくこの効果は非常に小さいので、問題が発生することはありません。

このリスクを最小限に抑えるために、アイドル時間中に接続から数分ごとに簡単なことを実行しSELECT 1て、接続がアクティブであると見なされるようにすることができます(クライアントが完全に停止しない限り)。

于 2012-11-17T21:12:19.383 に答える
1

接続が切断されると、一時テーブルとセッション設定が失われます。あなたの状況では接続プールが役立つようです。

于 2012-11-18T04:40:52.197 に答える