[seasar-dotnet:331] [Seasar]TransactionContextのIsolationLevelの指定方法

kubo jazzflute @ mbn.nifty.com
2006年 9月 5日 (火) 15:18:13 JST


久保です。

TransactionContextのIsolationLevelの指定方法について

http://s2container.net.seasar.org/ja/db.html

を見ると、

/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
<!-- ローカルトランザクション用のインターセプターで使用します -->
<component name="TransactionContext" class="Seasar.Extension.Tx.Impl.TransactionContext">
<property name="IsolationLevel">System.Data.IsolationLevel.ReadCommitted</property>
</component>
nnnnnnnnnnnn/

とありますが、
実際のTransactionContextのソースを見てみると、

/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
public IsolationLevel Level
{
	get
	{
		return this.level;
	}
	set
	{
		this.level = value;
	}
}
nnnnnnnnnnnn/

となっています。
よって、<property name="IsolationLevel">だと、何を設定してもデフォルトの
ReadCommittedになってしまうような気がします。

/nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
{
	logger.Debug("Level: SetValue() - value=" + value);
	this.level = value;
}
nnnnnnnnnnnn/

と言う風に、ログを出すようにしてみて、

<property name="IsolationLevel">
と
<property name="Level">
で実行したら、

<property name="Level">
だけでログが出力されました。


これは、SiteのDocumentを直すかSourceを直すかしないといけないような
気がします。
(結構、みんなCopyして使っているのでSourceを直す方が影響が
 少ないでしょうか???)



#
# SQLServer2005のSnapshot(読み取り一貫性)を利用しようとして
# 気付いた次第です。
#


-- 
kubo <jazzflute @ mbn.nifty.com>




seasar-dotnet メーリングリストの案内