3

以下は私のシナリオです。私のアプリケーションはトランザクションを開始し、挿入/更新してから Web サービスを呼び出します。Web サービスがリクエストを処理するのに時間がかかる可能性があります。セッションを正常に閉じることができるように、休止状態レイヤーでセッション/トランザクションのタイムアウトを構成する方法はありますか? PS - または、Web サービス呼び出しのタイムアウトを構成することもできます。その自由がないことを前提としています。Hibernate でできることはありますか、またはこれらを実装するために独自のカスタム ロジック (スレッド結合構造を使用) を作成する必要がありますか?

4

1 に答える 1

3

特定のクエリのレベルでタイムアウトを設定するか、JPA の EntityManager を使用する場合はクエリ ヒントを追加できます。

理論的には、Hibernate はデフォルトで楽観的ロック (データベース トランザクション分離レベルがそれに準拠している場合) を使用するため、書き込みまたは読み取りに対してレコードがロックされることはありません。その結果、長期にわたるトランザクションであっても、パフォーマンスが著しく低下することはありません。

悲観的ロックを使用している場合は、Hibernate セッションでタイムアウトを設定できます。Session.LockRequestを見てください。

于 2012-05-11T13:21:40.277 に答える