[seasar-dotnet:2162] Re: S2Unit.NETを利用したテスト実行時にデータベースコネクションが正しくクローズされていない
Masayuki TAMADA
[E-MAIL ADDRESS DELETED]
2012年 6月 8日 (金) 08:22:06 JST
小谷さん
タマダです。
仰るとおり、DIコンテナはS2Container、テスト属性はS2属性を利用しています。
尚、AOPではSeasar.DynamicProxyを利用していません。
お忙しいところお手数ですが確認宜しくお願いします。
On Fri, 8 Jun 2012 06:49:45 +0900
"kotani.k" <keikotani926 @ gmail.com> wrote:
# タマダさん
#
# 小谷です。
#
# ご指摘いただき、ありがとうございます。
#
# DIコンテナはQuillではなくS2Containerをご利用になっており、
# テスト属性はQuill属性ではなくS2属性をご利用になっている、という認識でよろしいでしょうか?
#
# ソースコード上はご指摘の通りであることを確認しました。
# 仕事中は対応できない環境のため、今夜にでも動作を確認してみます。
#
# 以上です。
#
# 2012年6月7日 12:19 Masayuki TAMADA <masayuki.tamada @ gmail.com>:
# > タマダです。
# >
# > 現在、過去に.NET Framework 2.0 環境で作成したプログラムを .NET Framework 4.0 環境で
# > 動作させるための調査を行っています。
# >
# > 動作環境は以下の通りです。
# >
# > 【.NET Framework 2.0 環境】
# > ・S2Container.NET 1.3.17
# > ・ODP.NET 10.2
# >
# > 【.NET Framework 4.0 環境】
# > ・S2Container.NET 1.4 RC2
# > ・ODP.NET 11.2
# >
# > S2Unit.NETを利用してテスト作成してあるため、動作確認はこれを利用して実施しています。
# > S2Dao.NETを利用したテストプロジェクトの動作確認中にデータベースコネクションが開けなく現象が
# > 発生してしまいました。
# >
# > 但し、個々のTestFixtureを実行させた場合、この現象は発生しません。
# > このプロジェクトでは、多数のTestCase, TestFixtureが存在しています。
# > そのため、CONTAINERNET-146 の問題と同様かと考えて調査をおこなってみました。
# >
# > Revision 1260 でコミットされた S2TestCaseRunnerBase.cs
# > にはコードの変更が行われていませんが(ここの意図は理解出来ませんが)、
# > QuillTestCaseRunner.cs の変更内容を見ると、TearDownDataSourceメソッド内で
# > _transactionContext が存在有無により
# > _transactionContext が保持しているデータベースコネクションのクローズ処理を行う様にされています。
# >
# > しかし、これと同様の処理がS2TestCaseRunnerに存在しないのが気になり、S2TestCaseRunnerBase の
# > TearDownDataSourceメソッドの
# > 挙動を確認してみました。
# > 結論だけ書くと、TearDownDataSourceメソッド終了時、_transactionContext.Connection はオープンしたままであるため、
# > 上記の場合問題が発生している様です。
# >
# > そこで、QuillTestCaseRunnerと同様にS2TestCaseRunner に
# > TearDownDataSourceメソッドを以下の様に追加し、再度テストを行い、
# > TearDownDataSourceメソッド終了時、_transactionContext.Connection
# > はクローズされ問題が発生しないことを確認しました。
# >
# > protected override void TearDownDataSource(object fixtureInstance)
# > {
# > if (_dataSource != null && _transactionContext != null)
# > {
# > _dataSource.CloseConnection(_transactionContext.Connection);
# > }
# > base.TearDownDataSource(fixtureInstance);
# > }
# >
# > この点について確認頂けると有り難いです。
# > _______________________________________________
# > seasar-dotnet mailing list
# > seasar-dotnet @ ml.seasar.org
# > https://ml.seasar.org/mailman/listinfo/seasar-dotnet
# _______________________________________________
# seasar-dotnet mailing list
# seasar-dotnet @ ml.seasar.org
# https://ml.seasar.org/mailman/listinfo/seasar-dotnet
seasar-dotnet メーリングリストの案内