パスワードを忘れた? アカウント作成
431324 journal

hatokuの日記: JBOSS

日記 by hatoku
さてさて、どーもBMP EntitybeanとDBのconnectionとの関係がいまいち理解できていなかったのだが、ようやっとわかった。

・トランザクション内では、DataSource.getConnection()は常に同じjava.sql.Connectionを返す。

->一般に、EntityBeanでは、loadだのfindByXXXだのの各メソッド内でDB接続をopen/closeせいやと言ってるのだが、これで納得。
 ただし、どうもstatefullSessionBean内でentityを呼ばないとダメなようだ。
もろちん、レコードロックとかもふつうにRDBのConnectionを使用しているように透過なので、for updateもできる。シーケンスとしては、
ejbCreate/findbyXXX/findByPrimaryKey --- ロックしない
ejbLoad---for updateする

となる。トランザクション(javax.transaction.UserTransactionや、SessionBeanのサランザクションコンテキスト)のcommit時にjava.sql.connectionもcommit(あるいはrollback)されるのでOK
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー

読み込み中...