Sun Tech Daysにいってきた

いくつか内容をまとめ。

GlassFish and the Future of Java EE

当然マシンにもよるがGlassFish v3はそこそこのスペックなら1秒で起動するらしい。
それくらい速ければ、たしかに便利だと思う。

アプリケーションからGlassFishを起動できるというEmbeddable GlassFishというのが面白そうでした。

Java Persistence APIs

意外にも参加者が多かった。もしかしてJPAは人気があるのか?

JPA1.0の話題のみでJPA2.0の言及はありませんでした。

内容はこんな感じ。記憶に頼って書いているので漏れている話題があるかも。

  • 遅延ローディングの話
    • FetchType.EAGERとFetchType.LAZYの違いに気をつけろ
    • Fetch Joinを検討しろ
    • トランザクション外でのアクセスに気をつけろ(遅延ローディングされるものはトランザクション内であらかじめアクセスしておけ)
  • EntityManagerやQueryの話
    • EntityManagerはスレッドセーフじゃない。Servletでは、EntityManagerじゃなくてEntityManagerFactoryをDIしろ。
    • TransactionScopedなEntityManagerとExtendedなEntityManagerについて
    • FlushModeの話(資料には本当はサポートされていないNEVERが載ってたけどあれは間違い)
  • マッピングの話
    • 3つの継承戦略について。
  • 排他制御の話
    • LockMode.READとLockMode.WIRTEの違いとか
    • バルク更新では@Versionのバージョン番号はインクリメントされない
  • パフォーマンスの話

どれもPro EJB 3: Java Persistence APIに書いてあるので当日のセッションをもっと詳しく知りたい人にはお奨め。
そもそもJava Persistence APIって?という場合は、Seasar2とHibernateで学ぶデータベースアクセス JPA入門もお奨めです:-)

Oracle Technical Session: インメモリ分散処理で変わるアーキテクチャ。進化するWebLogic

WebLogicというよりCoherenceの話でした。
興味があったところなのでこのセッションが一番おもしろかった。
このセッションで得た情報じゃないのも混じりますが、内容はこんな感じです。

  • Coherenceはスケールアウトしやすい(100ノードや200ノードでもスケールするとか)
    • 競合する製品では5ノードくらいで限界に達するものもあるとか。
    • Times Tenはスケールアウトしにくい(どちらかというとスケールアップ)。
    • 動的にノードを追加できる(ある閾値に達したら自動で追加ということも可能)
  • データソースは何でもいい
    • データベースでなくてもかまわない。ホストとかMQとか。
    • データベースであってもOracleだけに縛られない
  • 高可用性
    • 全ノードがダウンする確立はとても低い
  • パフォーマンス
  • スモールスタートでコストを抑えられる(必要になったらノードを追加)
    • ライセンスの価格体系はよく知らない(確認中)
  • Oracle TopLink Gridを使えばJPA経由でアクセスできる
    • JPQLがCoherenceへの問い合わせに変換されるらしい
    • 通常はCoherenceAPIを直接触る。(WHEREやGROUP BYに相当するAPIはあるが、JOIN相当がない)。
    • HibernateでもCoherenceはキャッシュとして使える