WOMeeting200508
- 日時:8/27(土) 13:30〜17:30(開場13:00)
- 場所:スペース・ソルバ株式会社
- 東京都中央区日本橋大伝馬町11-8 フジスタービルディング日本橋3F
- TEL: (03)5643-7711
プログラム
第一部
第二部
Chap 9 Copying Enterprise Objects - 読書会「Practical WebObjects」
質問
- 結局、プライマリ・キー、サロゲート・キーをコピーしてはいけない問題はどうやって解決するの?
- プライマリ・キーは、属性値をコピーせずにEOFの自動採番機能を利用することにすればOK。
- サロゲート・キーは、コピー戦略のカスタマイズ例と同じように、採番ロジックを実装して、属性コピー後に採番した値を設定すればよい。
- WOApplication.setAllowsConcurrentRequestHandling?
- Request-Responseループ
- 1回のループでDB操作を完結すれば、ほとんどの場合は問題ないのでは
- NSLocking
- Objective-CのFoundationフレームワークを引きずっている
- Javaのスレッド管理機構使えよ
- スレッドのロックの結果としてDB接続が制限される
- SQL発行したりしてDBを操作するのではないので、外部の環境からは問題なくDBに接続できる
- EOFのロック戦略
- 名前がよくない、同期や整合性管理などにすべき
- オプティミスティックロック使えね
- カレントアプリケーションインスタンス外からの変更をチェックする
- デスクトップアプリケーション向けの仕様を引きずったまま
- ペシミスティックロック使えね
- ACIDに問題あり
- 競合時の反応はデータべース次第
- どうせ誰も使わない
- オンデマンドロック使えね
- 自前でEOFロックを実装する?
- EODatabaseContext?のデリゲートを使えばできることはできる
- リレーションシップはどうするのか
- DB処理を行うと、EOFはとにかくオブジェクトを同期しようとする
- フェッチ後まったく触ってないオブジェクトの内容がいつの間にか最新のものになってたり
- 編集中のオブジェクトでも同期される。その場合、変更したデータは同期後にマージされる
- フェッチタイムスタンプによっては同期されない
- ロックについてのドキュメントは?
- EOFデベロッパガイドに数ページ、あとAPIリファレンスにちらほら
- ロックという用語に複数の定義があって、ドキュメントがわかりにくい
- 他フレームワークではどんな同時実行制御がされているのか
- 真面目に考えている人はほとんどいないらしい
- 不特定多数が利用するWebアプリケーションで同時実行制御を厳密に行うのは難しい
- CGIKit (CVS HEAD) のRequest-ResponseループはWOと同じように制御している
|