春にTomcat jdbcプール(removeAbandonTimeout = 12mins)を使用しています。トランザクション境界内で、Spring Tran Manager は接続をスレッドにバインドします。これは、境界の開始時にプールから取得した接続が、トランザクション境界 (コミット/ロールバック) の終わりまでプールに返されないことを意味します。これは、tran マネージャーが定義されているデータ ソースの conn では問題ないように思えます。
(データ ソース 1 の) tran 境界内で非トランザクション方式でクエリを実行する他のデータ ソースで作成された接続もスレッドにバインドされるため、tran 境界が終了するまでプールに返されません。
質問: トランザクション マネージャーで他のデータ ソースからの接続に対してロールバックが試行されない場合、スレッドへの接続をスプリング バインドして、他のスレッドが接続を再利用できないようにする必要があるのはなぜですか?