issues
search
seasarorg
/
dbflute-play
DBFlute for Play
0
stars
1
forks
source link
actionをasyncにしてもトランザクションが追従するようにしました
#5
Closed
manhole
closed
10 years ago
manhole
commented
10 years ago
requestをasyncにしてスレッドが切り替わっても、トランザクションが追従するようにしました。
debug/async1のコンソールログで、スレッドが変わっても同じConnectionを取得できていることを確認できます。
debug/async2のコンソールログで、別スレッドで例外が発生してもrollbackされることを確認できます。
実装上の要点
ThreadLocalの代わりにHttp.Contextを保存先とするTransactionManagerImpl拡張を作成しました: HttpContextBoundTransactionManager
Seasar2のJTATransactionManagerAdapterのAsync対応版を作成しました: AsyncJTATransactionManagerAdapter
requestをasyncにしてスレッドが切り替わっても、トランザクションが追従するようにしました。
実装上の要点