久しぶりにGoogle Code にあった Appengine のドキュメント達を見ようとしたら、Google Developer の方にリダイレクトされました。
引越しは着々と進んでいるようですね。
今更ですが、メンテナンス対策メモ。
定期メンテナンス中の機能の維持 – Google App Engine — Google Developers
Datastoreが読み取りモードになった時に無様なエラー画面にならない様に、Datastoreの put とかは com.google.apphosting.api.ApiProxy.CapabilityDisabledException をcatchましょう、という事です。
上記以外にも色々スローされるので、運用としては発生したらエラー制御を追加していく感じになりましょうか。
GAE/Jで運用中に発生する例外(と一部対処法) : CB NANASHI管理人ブログ
Memcache も メンテ中の put とかは com.google.appengine.api.memcache.MemcacheServiceException がスローされるんでcatchしてね、との事です。
特にMemcacheはメンテナンス以外でも結構な頻度でおかしくなるんで、私は不精して put に限らず get も無条件で try 〜 cache でくくってます。
それが正しい作法かどうか疑問ですしもうちょっとスマートな方法があるのかも知れませんが、ユーザ影響は避けたいんで。
私の環境でたまにあるのがget時の com.google.appengine.api.memcache.InvalidValueException なんですが、コレはアプリケーション側のバグの可能性が高いんですが、起こり得ると言う意味ではcatchした方がいいと思うです。