お疲れ様です。TimberLandChapel です。
すいません。ちょっと海外に出てるので返信が遅れます。
さて,
やはりロックタイムアウトというか,ロック待ちで待ち続けているということのようですね。
直接の回答としては,あくまで一般的にはということですが
-
分離レベルを変更するということでもない
-
サーバーの設定を変えるということでもない
じゃぁどうするか?
というところでしょうか?
例えば,
今の段階で,
採番テーブルから新番号を取得して,
その番号を取得した処理がコミットされるまでロックをリリースをしない。
という様にデザインしているのであれば,
採番の要件が「一意性を確保さえすればよい」ということであれば,
番号を取得した時点でロックは開放してしまう。そして,もしその番号を取得した処理がロールバックされてしまったら,そのままその番号も捨ててしまう
というようにすればロック待ちを低減することもできるはずです。
しかし,まぁこれは取得する番号に穴があってはいけない完全な連番にする必要がある場合にはできないですね。
という様に,
「本当にロックを必要としているのはどこまでの処理なのか?」
という,業務要件としてのトランザクションの粒度を再検討するのが道だと思います。
いかがでしょう?