6章。この本全部で33章あるんだが…1日1章として1ヶ月か。
・悲観的ロックと楽観的ロック。
 違いは後者は更新対象のローが他のトランザクションによって書き換わったか否かをロジックで判断する(排他ロックはしない)。後者の方が高速だけど判断が入るのでエラーの可能性がある。
・読み取り一貫性。いや、シリアライザブル以外はありえないだろ…。
 不正読み込み(ダーティリード、ノンリピータブルリード、ファントムリード)の図があって判り易い。
JTAトランザクション
 私、昔から接続プールとデータソースをそれぞれ別途定義する(普通1:1)のは何故かいな、冗長だなと思っていたが、JTAトランザクションの際にTXマネージャが同じ接続プールを渡す為だったのね。一つ利口になった。
・分散トランザクション
 JTAの理解が↑な有様にも関わらず、私は分散トランザクションと2フェーズコミットにはちと煩い男。というのも大昔、分散トランザクションモニタの汎用機からUnix系への移植の仕事をしてたのさ。Cで。でも下っ端だったんであんまり判らず。
EJBトランザクション
 まぁBMTは有りえないんでCMTだよな。Requied,RequiedNew,Supports,NotSupported,Mandatory,Neverの判り易い説明が。
・例外とトランザクション
 基本:非チェック例外(=ランタイムエラー系)は必ずロールバックされる。チェック例外(=論理エラー)はAPにExceptionを返しAPに判断させる。
 ただし、
  非チェック例外でもロールバックせずにAPに判断を任せる技(@ApplicationException(rollback=false)を明示)がある。
  チェック例外でも呼び出されたEJBでsetRollBackOnly()を読んでおくと必ずRollBackする。
・ステートフルセッションBean
 DBと違って、Bean自体のインスタンス変数の面倒はEJBコンテナではみてくれないので、javax.ejb.SessionSynchronizationのコールバックを実装しておくと、TX開始直前、コミット直前、終了直後、に呼ばれるのでそこで何とかする。