[seasar-dotnet:1622] Re: S2Dao.netによるトランザクションの拡張について

kubo [E-MAIL ADDRESS DELETED]
2010年 3月 23日 (火) 10:39:37 JST


久保(jflute)です。

> トランザクションについてですが、最終的に提示したソースで問題なく動きました。
> ソリューションのリビルドを行うと上手く動いていました。
> ※ごく稀に、古いソースの状態で実行されてしまうケースがあります。
なるほど、何はともあれ動いて良かったです。
(これ以上は自分もなんでだろう!?って感じだったので)

> Protected Insert As InsertDB
> Insert.InsertData(array)
これで問題ありません。


あくまで「解決を早めるために」ということでの
アドバイスとお受け取り下さい。
また何かありましたらぜひMLをご利用下さいね。

2010/3/19 MOTO FUJI <[E-MAIL ADDRESS DELETED]>:
> 久保さん
>
> 返信が遅れてしまい申し訳ございません。
>
> 下記の件、おっしゃる通りだと思います。
> まずは、基本的な仕組みを理解して作業を進めていきたいと思います。
> 私が抱えていた問題は自己解決したのですが、なぜできるようになったのか
> 未だ理解できていないので、まずはそこから解決したいと考えています。
>
> トランザクションについてですが、最終的に提示したソースで問題なく動きました。
> ソリューションのリビルドを行うと上手く動いていました。
> ※ごく稀に、古いソースの状態で実行されてしまうケースがあります。
>
> 古いソースでは、
>
> Dim Insert as InsertDB
> Insert.InsertData(array)
>
> という形でメソッドをコールしていたので、
>
>    Protected Insert As InsertDB
> Insert.InsertData(array)
>
> とすると上手く動きました。
>
> 以上です。有難うございました。
>
> 2010年3月16日0:12 kubo <[E-MAIL ADDRESS DELETED]>:
>> 久保(jflute)です。
>>
>> 別のスレッドで通知しましたが、この後
>> あまり反応できなくなるので、今のうちにアドバイスを。
>>
>> 原因を突き止めるための重要な(かつ、単純な)要素は、
>> 「問題が発生する場合と発生しない場合の境目を、
>> 検証してひたすら狭めて見つけていくこと」です。
>> そのために、間違っててもいいので「仮説」を立ててみます。
>> 「これこれこうで、これが原因なんじゃないかと」
>> そして、それに関してできる限りのパターンの検証をして、
>> 結果をメモって比べてみて、また別の仮説を立てて検証。
>> (やっていくと、だんだん仮説が自然発生していきます)
>> 確かに真っ暗闇の中を歩くと大変なので、こうやって、
>> ある程度の論理的な基盤を作って検証を進めていくと、
>> どんどん道が明るくなってきて、原因を突き止めやすくなります。
>>
>> 投稿されるときも、
>> 「こうやってできなかったので、何が間違ってるのか?」
>> というのだけでなく、
>> 「さらに、こう思って幾つか検証してみて、結果がこうでした」
>> というのも一緒に付けることによって「議論の基盤」が
>> できて、ML閲覧者の方もコメントしやすくなります。
>> また、投稿後、返事を待つまでもなく検証は続けて、
>> 連続投稿になってもいいので、検証した内容と結果を
>> さらに投稿して頂ければと。
>>
>> 仮説がどうしても立てられない、というときは、
>> まだその物事に関して、前提となる理解が足りていない
>> 証拠なので、一度腰を据えてドキュメントやサンプル等を
>> 熟読してみるのが良いと思います。
>> (今からでもいいので、今回のやり取りで提示された
>> Quillのドキュメントやサンプルプログラムは一通り
>> 目を通しておいて下さい)
>>
>> 多分、あともうちょいってところまで来てると思うのですが、
>> せっかくなのでこれを機に、QuillやDI、AOPなどの理解と、
>> 問題が発生したときのアプローチを覚えて頂ければ、
>> 比嘉さん自身のこの後の開発が随分楽になるんじゃないかと思います。
>>
>>
>>
>> #
>> # それにしても、virtual のないメソッドに属性を付けた時、
>> # コンパイルエラーか実行時エラーかにできないものか...
>> # (C#のリフレクション情報でvirtualの有無って取れるのかな!?)
>> #
>>
>> 2010/3/15 kubo <[E-MAIL ADDRESS DELETED]>:
>>> 久保(jflute)です。
>>>
>>>> <2>
>>>> 一度、あったのでもう一度確認というところですが、
>>>> また最新のソースが反映されていないとかがないように
>>>> 何度か繰り返し確認をお願いします。
>>> 適当にログを入れてみて、そのログが出力されるか、
>>> という感じで確認すると良いです。
>>>
>>> 2010/3/15 kubo <[E-MAIL ADDRESS DELETED]>:
>>>> 久保(jflute)です。
>>>>
>>>>> Webサービスからの呼び出しは下記の様になっています。
>>>>>
>>>>> <流れ>
>>>>> 1. クライアントからWebサービスとしてImportDataを呼び出す。
>>>>> 2. ImportDataメソッドからInsertDBクラスのInsertDataを呼び出す。
>>>>> 3. さらにDaoのInsertDataメソッドが呼び出され、INSERT文が発行される。
>>>>
>>>> ありがとうございます。
>>>> ソースをぱっと見る限り、問題はなさそうに見えます。
>>>>
>>>> <1>
>>>> 現状のソースで、トランザクションが効かないというのは、
>>>> 「トランザクションのログが出力されない」ということなのか、
>>>> 「トランザクションのログが出力されてるのにエラー時に
>>>> ロールバックされない」ということなのか、
>>>> どちらになりますでしょうか?
>>>> (この違いは重要です)
>>>>
>>>> <2>
>>>> 一度、あったのでもう一度確認というところですが、
>>>> また最新のソースが反映されていないとかがないように
>>>> 何度か繰り返し確認をお願いします。
>>>>
>>>> <3>
>>>> 試しに、InsertDBですが、インターフェースと実装クラスに分けて、
>>>> インターフェースの定義上でTransaction属性を付与するようにして、
>>>> どうなるか試してみて下さい。(その他色々試して頂ければと)
>>>> 要は、別のやり方でも現象が同じかどうか!?というところです。
>>>>
>>>> <4>
>>>> もう一度、環境を整理してもらってもいいですか?
>>>> 利用しているDBの種類、データプロバイダとか、
>>>> Quillのバージョンとか、.NETのバージョンとか、
>>>> App(or WEB?).configの設定などなど。
>>>>
>>>>
>>>> #
>>>> # ドキュメント更新しました。
>>>> # 注意点はしっかり書いてありましたが、下の方だったので、
>>>> # 説明はじめの部分でも強調するようにしました。
>>>> # http://s2container.net.seasar.org/ja/quill.html#nodicon_tx
>>>> # ぜひ、もう一度ご覧になって下さい。
>>>> #
>>>>
>>>
>> _______________________________________________
>> 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 メーリングリストの案内