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
・トランザクション内では、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
JBOSS More ログイン