[seasar-dotnet:2123] Re: Quill でトランザクションが開始できません

kotani.k [E-MAIL ADDRESS DELETED]
2011年 12月 14日 (水) 01:03:14 JST


上村さん

小谷です。

[seasar-dotnet:2092]で報告された現象と同じ可能性が高いです。
お手数ですが、Subversionを使って
https://www.seasar.org/svn/s2container.net/trunk/s2container.net/
からSeasar.NETのソースコードを取得し、
QuillInjector.csの345行目にある
Inject(component.GetComponentObject(implType));
を
Inject(component.GetComponentObject(field.FieldType));
に変えてコンパイルしたdllを使って試してみていただけないでしょうか?

以上です。

2011年12月13日18:14  <[E-MAIL ADDRESS DELETED]>:
> 上村と申します。
>
> Quillでのトランザクションについて質問です。
>
> 以前、同様の質問を致しましたが
> 不躾に添付ファイルを送ってしまい
> 申し訳ありませんでした。
> こういったメーリングリストは
> 初めてなのでサンプルがあった方が
> 分かりやすいかと思ったのですが
> 大変、失礼致しました。
>
> 質問内容ですが
> http://s2container.net.seasar.org/ja/quill.html#nodicon_tx
> やExamplesを参考にコードを作成しましたが
> トランザクションが開始されず
> エラーが発生してもロールバックされません。
>
> 以下、コードの一部を記述します
> -----------------------------------------------------------
> <Implementation(GetType(TestLogicImpl))> _
> Public Interface ITestLogic
>
>        <Transaction()> _
>    Function Delete() As Integer
>
> End Interface
>
> Public Class TestLogicImpl
>    Implements ITestLogic
>
>    Protected _dao As ITestDao
>
>        <Transaction()> _
>        Public Overridable Function Delete() As Integer _
>                                Implements ITestLogic.Delete
>
>        Return _dao.Delete()
>
>    End Function
>
> End Class
>
> [App.config]
> <quill>
>  <dataSources>
>    <dataSource name="ds">
>      <provider>ODP</provider>
>      <connectionString>"User Id=Test; Password=Test; Data Source=Test"</connectionString>
>      <class>Seasar.Extension.Tx.Impl.TxDataSource</class>
>    </dataSource>
>  </dataSources>
>  <assemblys>
>    <assembly>Seasar</assembly>
>    <assembly>Seasar.Windows</assembly>
>    <assembly>Seasar.DynamicProxy</assembly>
>    <assembly>Seasar.Dao</assembly>
>    <assembly>Oracle.DataAccess, version=1.102.5.0, Culture=neutral, PublicKeyToken=89b483f429c47342</assembly>
>  </assemblys>
> </quill>
> -----------------------------------------------------------
>
> 「<Transaction()> _」をクラス側のメソッドに記述したところ
> Daoのインスタンスが作成されなくなり
> System.NullReferenceExceptionが発生するようになりました。
> そこでインタフェース側に記述したところ
> エラーは発生しなくなりましたが、トランザクションは開始されておらず
> トランザクション開始というログも出力されておりません。
>
> クラス側にImplementationを記述してみたり
> Quillやトランザクションでいろいろ検索してみましたが
> 解決には至りませんでした。
> トランザクションを記述する際に
> 注意する点があればご指導頂けないでしょうか。
>
> 環境は次のとおりです。
> OS:Windows 7(SP1)
> 開発言語:VB(.NET Framework 4.0)
> 開発環境:VisualStudio2010
> DB:Oracle 10.2.0.5.0
> S2Container.net:1.4.0.0
>
> 皆様お忙しい中、お手数をお掛け致しますが
> 何か情報があればご教示ください。
>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet


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