良い時間!
Spring のトランザクション マネージャは、何らかのスケジューラを使用してタイムアウト時にトランザクションを無効にしますか (そうであれば、スケジューラのチェック期間は何ですか?)、または別のメカニズムがありますか?
いいえ、タイムアウトはデータベースとのやり取りでのみチェックされます。タイムアウトを強制する別のスレッドはありません。その結果、停止した接続は解放されず、タイムアウト例外は実際の締め切りから長時間経過してから発生する可能性があります。
接続がこのようにスタックしないようにしたい場合は、c3p0 の unreturnedConnectionTimeout や bonecp の closeConnectionWatch などの接続プール機能を使用してください。
Spring 3.0 ドキュメントから:
トランザクション タイムアウトのデフォルトは、基礎となるトランザクション システムのデフォルト タイムアウト、またはタイムアウトがサポートされていない場合はなし
@Transactional
これは、注釈と<tx:advice>
ポイント カットの両方に適用されます。