[seasar-dotnet:2124] seasar-dotnet:2123] Re:Quill でトランザクションが開始できません
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
2011年 12月 14日 (水) 11:34:44 JST
小谷様
ご回答ありがとうございます。
上村です。
ご指摘の通り
Inject(component.GetComponentObject(implType));
↓
Inject(component.GetComponentObject(field.FieldType));
にしてDLLを作成し、確認したところ
きちんとトランザクションが開始されるようになりました。
暫くこのDLLを使用していこうと思います。
ありがとうございました。
この記事は拝見しておりましたが
トランザクションにばかり気を取られて確認を怠ってしまいました。
申し訳ありません。ご教示ありがとうございました。
以上です。
>上村さん
>
>小谷です。
>
>[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 mailing list
>[E-MAIL ADDRESS DELETED]
>https://ml.seasar.org/mailman/listinfo/seasar-dotnet
seasar-dotnet メーリングリストの案内