私はGlassfish 3.1 + Hibernate 3.6 + Postgres 9を使用していますが、同時トランザクションを実行している「長い」処理方法を十分に理解していません。同時トランザクションはどのように処理されますか?
場合によっては、トランザクションに最大1秒かかる場合があります。何が起こるかは、クライアントからイベントを受け取ったときにテンプレートテーブルからオブジェクトを生成することです。 2つの異なるイベントが重なり合うオブジェクトのセットを生成することがあります。
私は、このシナリオについて考えています:
T1 begin
T1 read objects which may already exist
T2 begin
T2 select templates which have to be processed
T1 inserts (generate objects)
T1 commit
T1 select templates which have to be processed
T1 inserts (generate objects)
T1 commit
はどのようにこれは私に伝播されますか?ロックの例外はありますか?または、ユニークなインデックスのため制約の例外が発生しますか? どうすればこのような状況に対処できますか?処理を停止する前にイベント処理を3回再開しますか?
挨拶、PostgreSQLがこのマルチバージョン同時実行制御と呼ばれる処理
M
A)試しましたか?何が起こるのですか? B)[トランザクション分離に関するpostgresドキュメント](http://www.postgresql.org/docs/9.1/static/transaction-iso.html) – AdamKG
を調べてください。必要なヒントがありましたか?私は、私が休止状態でこの設定をしなければならないと思った。接続プールを必要な分離レベルに変更しました。エラーコードもそこに記載されているので、私は必要なものすべてを持っていると思います。ありがとうございました!あなたが答えとしてリンクを投稿すれば、私はそれをチェックすることができます。ご挨拶 – mkuff