[seasar-dotnet:2161] Re: S2Unit.NETを利用したテスト実行時にデータベースコネクションが正しくクローズされていない

kotani.k [E-MAIL ADDRESS DELETED]
2012年 6月 8日 (金) 06:49:45 JST


タマダさん

小谷です。

ご指摘いただき、ありがとうございます。

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 メーリングリストの案内