0

パフォーマンステストの準備をしていて、新しいテストケースを作成しています。したがって、1つのテストケースをテストし、アクセスできるサーバーで実行すると、次のようになります。org.hibernate.StaleObjectStateException:行が別のトランザクションによって更新または削除されました

テストしたいアプリケーションはバックエンドです。ビューもセッションもありません。RESTのようなものです[すべてのリクエストには、タスクを実行するために必要なすべてのものが含まれています]。私は1人のユーザーに対して1つのAPIを何度もテストしていました。リクエストが届き、サービスが機能し、レスポンスが返送されます。レスポンスを分析して、同じユーザーの同じAPIに別のリクエストを送信します。

前述したように、オブジェクトはセッションに保存されません。リクエストが来るたびに、User.get(id from params)を実行しています。

現在、Postgres8.4.4でこのアプリを実行しています。サーバーは非常に強力で、現在はまったく負荷がありません。

アプリ[サーバーはリモート]から応答を受信し、分析して、トランザクションが保存される前に別のリクエストを送り返すことができるように思えます。これはかなり奇妙です。

ここで足りないものはありますか?私はそれについて何をすべきですか?

4

1 に答える 1

1

結局、それは私たちのテストツールであるSoapUIが原因であることがわかりました。このいまいましいことは、2つのリクエストを次々に送信することができます。これは文書化されたバグであり、フォーラムで多くの話題があります。私たちはsoapuiを捨てて、自分たちで小さなテストツールを書きました。今ではそれは魅力のように機能します。

于 2012-02-16T16:09:07.870 に答える