例えば利用履歴を検索する画面など、selectしか発生しないような画面でもTransactionがかかっているので、DBでは共有ロックが取得されることがある。(例えばSQLServerとか)
これが原因で更新系のトランザクションがブロッキングされる事象がおきました。
今回の事例ではSQLServerだったのと、select文がS2DAOの外だしSQLだったので、NOLOCKヒントを追加して回避することにしました。
自動でTxが制御されるのは便利だけれども、パフォーマンスがシビアなシステムの管理画面などに使用しているときは注意が必要です。