[Seasar-user:15463] Re: Isolation Levelについて

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2008年 8月 22日 (金) 15:15:10 JST


小林 (koichik) です.

Date:    Fri, 22 Aug 2008 13:56:56 +0900
From:    "陳捷" <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:15459] Isolation Levelについて

> DB2では、分離レベルは4つあります:RR、RS、CS、UR。
> 
> DB2の分離レベルを使用したい場合は、DB2のDialectを使うべきだと思います。

コネクションレベルで分離レベルを設定する場合は,
JDBC APIで設定できるので Dialect を意識する必要は
ありません.

Connection#setTransactionIsolation(int)

DB2 の分離レベルと JDBC (ANSI/ISO SQL 標準) との
対応は以下のとおりです.

UR : Connection#TRANSACTION_READ_UNCOMMITTED
CS : Connection#TRANSACTION_READ_COMMITTED
RS : Connection#TRANSACTION_REPEATABLE_READ
RR : Connection#TRANSACTION_SERIALIZABLE


コネクションプール全体で分離レベルを設定するには
jdbc.dicon で次のように設定します.

<component name="connectionPool"
    class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
  <property name="transactionIsolationLevel">
    @[E-MAIL ADDRESS DELETED]
  </property>
  ...


コネクションごとに個別に設定するなら,DataSource から
getConnection() でコネクションを取得して
Connection#setTransactionIsolation(int) で
設定してください.
その場合,上記の方法でコネクションプールに
デフォルトの分離レベルを設定してください.
コネクションプールからコネクションを取得する度,
デフォルトの分離レベルが設定されます.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



Seasar-user メーリングリストの案内