2011-07-15 1 views
0

GAEを使用していますが、トランザクションを使用して同じキーを持つエンティティを作成しようとする2つのスレッドを処理する方法については、the documentationが見つかりました。残念ながら、状況を正確に検出する方法についてのドキュメントは明確ではありません。 「2回目の試みは原子的に失敗する」と言われていますが、どうですか?それは例外をスローしますか?もしそうなら、どちらが例外ですか?「トランザクションでは、2回目の試みは原子的に失敗します」とはどういう意味ですか?

答えて

1

ConcurrentModificationExceptionが発生します。あなたのdocs linkから、ちょうど最初のコードブロックの後:値が別のユーザーによって更新することができるので、これはトランザクションを必要と

...エンティティがトランザクション中に更新された場合、トランザクションはConcurrentModificationExceptionがで失敗します。アプリケーションは、新しいデータを使用するためにトランザクションを繰り返すことができます。

+0

これは、既存のキーのデータを更新するためのドキュメントです。彼らは別のことを言っていないので、同じキーを持つ新しいエンティティを作成しようとすると同じ例外がスローされると思います。 – jamie

+0

が正しい。トランザクションは、トランザクションに含まれる書き込みのタイプに関係なく同じ動作をします。 – ryan

関連する問題