[seasar-dotnet:1668] Re: 2Container.NET、S2Dao.NET(Windows7)調査状況

kubo [E-MAIL ADDRESS DELETED]
2010年 5月 10日 (月) 17:24:05 JST


久保(jflute)です。

> はい。Win7 で DynamicProxy を利用した環境でも、
> 検索してデータを実際に取得できました。

なるほど、すると、Daoインターフェースのエンハンス自体は
うまくいっていて、Logicクラスのエンハンスがうまく
いっていないってことになりますね。
(もともとDaoの生成がうまくいかないって話になっていた
と思いますが、Logicの生成がうまくいかないって話になるのかと)

試しに、Logicクラスに、
 A. traceInterceptor だけを適用
 B. requiredTx だけを適用
して、もう一度試してみて下さい。
これで、Interceptorの違いが影響するのか
どうか(の可能性)が確認できます。

> Win7 で DynamicProxy を利用できていないが、
> IKojinDaoを経由してDBアクセスを実行することができた。
> ということになるのでしょうか。
IKojinDaoでは、DynamicProxyを使っているので、
微妙にこの表現は違います。
("Win7 で DynamicProxy を利用できていないが" の部分)

Logic -- DynamicProxyを使ってない (AOPを外した)
Dao -- DynamicProxyを使っている (そもそもAOPが必須)

Win7 + DynamicProxyで、AOP利用の可否が、
「DaoだとOKだが、LogicだとNG」
という状況がとりあえず判明したって感じですね。

2010/5/10 Sohei Fukumura <[E-MAIL ADDRESS DELETED]>:
> お世話になっております。
> Sfukuです。
> 久保(jflute)様、返信ありがとうございます。
>
>>KojinLogicImplからaspect属性を全て排除したら、
>>Win7 で DynamicProxy を利用した環境でも、
>> (IKojinDaoを経由して)DBアクセスを実行することが
>>できた(例えば、検索してデータを実際に取得できた)、
>>ということでしょうか?
> はい。Win7 で DynamicProxy を利用した環境でも、
> 検索してデータを実際に取得できました。
>
>>KojinLogicからaspect属性を全て排除したということは、
>>KojinLogic には AOP が掛からない、とということです。
>>なので、"DynamicProxyではない" というか、
>>"そもそもこのクラスに対して Proxy を適用しない"
>>という解釈
> という事ですので、
> Win7 で DynamicProxy を利用できていないが、
> IKojinDaoを経由してDBアクセスを実行することができた。
> ということになるのでしょうか。
>
>
> 以上、よろしくお願い致します。
>
> -----Original Message-----
> From: [E-MAIL ADDRESS DELETED]
> [mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of kubo
> Sent: Monday, May 10, 2010 4:30 PM
> To: [E-MAIL ADDRESS DELETED]
> Subject: [seasar-dotnet:1665] Re:2Container.NET、S2Dao.NET(Windows7)調査状況
>
> 久保(jflute)です。
>
> Sfukuさん、こんにちは
>
>> 1『traceInterceptor』や『RequiredTx』の使い方が悪いため、
>> 『traceInterceptor』や『RequiredTx』をaspectするとエラーが発生するのでしょ
>> うか。
>>
>> 2『traceInterceptor』はトレースを出力のため問題ない気がしますが、
>> 『RequiredTx』はTransactionを織り込んでいるため、
>> 『RequiredTx』をaspectしない場合、機能によっては問題が発生する可能性があ
>> る。
> ※丸付き数字を普通の数字に変えました。
>
> <1>
> Win7限定でエラーが出る原因がそもそも
> わかってないので、こういう質問をされても
> やっぱり、わからない、としか言いようがありません。
> ただ、Win7でなければちゃんと動いているので(そうなんですよね?)、
> 少なくとも使い方が悪いからっていうのは想像しにくいですね。
>
> <2>
> "機能によっては問題が発生する可能性がある"  かどうかは、
> アプリでの要件次第かと。ただ、通常はトランザクションなし
> でDBアクセスするというのは業務的に問題があることが
> 多いとは思われます。
>
>> そもそも<aspect>を全て排除したということは
>> Dynamicproxsyではないということでしょうか。
> KojinLogicからaspect属性を全て排除したということは、
> KojinLogic には AOP が掛からない、とということです。
> なので、"DynamicProxyではない" というか、
> "そもそもこのクラスに対して Proxy を適用しない"
> という解釈になります。
>
>> 次の記載に修正すると、DynamicProxsyでも動作する。
>>  <component class="Info.Logic.Impl.KojinLogicImpl" >
>>  </component>
>> ・・・
> ここちょっと大事ですね。
> 状況を詳しく確認させて下さい。
>
> KojinLogicImplからaspect属性を全て排除したら、
> Win7 で DynamicProxy を利用した環境でも、
> (IKojinDaoを経由して)DBアクセスを実行することが
> できた(例えば、検索してデータを実際に取得できた)、
> ということでしょうか?
> _______________________________________________
> 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 メーリングリストの案内