DatastoreTimeoutExceptionについて、時代は変わっていたようだ。
先日のSlim3 Source Code Reading #2 で話題になった件について。
Slim3 Source Code Reading #2 に参加してきた! - SinDiary
丁度、twitter#slim3 でひが殿に質問してくださってる方がいらっしゃった。
タイミング的にここか、横山殿のblogを見てくださったのかな?
T.Yokoyamaのブログ: Slim3 Source Code Reading #2
更にその件について、@bluerabbit777jp殿が詳しく教えてくださった。
有識者の方とこんなに簡単にコンタクトが取れる・・・!
いい時代になったものだと、勝手に感動した!
ということで、言いだしっぺの私の役割は、学習した内容をblogにまとめることである!
結論
DatastoreTimeoutExceptionはGAE/JのSDKより先のRPCの向こう側でリトライされるように時代は変わったのだ(キリッ
@bluerabbit777jp殿からいただいたリプライを引用!
Slim3本にも、毎回必要なのでSDKからフレームワーク側で対応するのが良い
と書いてありましたが、更にその先で対応されたようです。
2011/12/29 修正
また、DatastoreのAPIは全て非同期で、利用する側で同期に変える必要があるそうです。
普通に使う時は、同期して使うでしょうからSlim3ではデフォルトが同期するようになっているのでしょうね。
DatastoreのAPIが全て非同期なのではなく、RPCは全て非同期である。
GAE/J SDKのAPIには同期用と非同期用が用意してあるそうです。
また、ModelMetaに関する情報も、@bluerabbit777jp殿からいただきました。
APTというのは、これのことで良いのかな?
@sinmetal ModelMetaはModelのアノテーションを元にAPTで生成されます。
Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle
slim3-gen 側のソースを読む時には、この辺りの知識も必要そう。
2011/12/29 追記