[seasar-dotnet:1795] Re: LoaderLockの件

kubo [E-MAIL ADDRESS DELETED]
2010年 9月 2日 (木) 21:14:58 JST


久保(jflute)です。

さらにまとめると:

o Seasar.NET ありでDBアクセスで発生する
o Seasar.NET は最新バージョンでも発生する
o Seasar.NET のサンプルアプリでは発生しない
o データプロバイダに関わらず発生する

そもそも LoaderLock 発生の仕組みは?
発生した場合は通常どうするのか?
をトップダウンの調査は継続して下さい。

一方で、阿形さんのアプリでは発生するが、
Seasar.NETではサンプルアプリでは発生しないという
違いが発生していますので、徐々に環境を近づけて、
ボトムアップにその発生トリガを追求していくと良いです。

この問題に関わらず、こういう類いの問題追求では、
両面からアプローチすると色々見えてくる可能性があります。

ちなみに、Seasar.NETで、DBアクセス(S2Dao.NET + DBFlute.NET)
してるプロジェクトを幾つも見たり聞いたりしていますが、
LoaderLock が話題にのぼったことは(自分として)ないです。
引き続き、ML閲覧者の方で LoaderLock 関連の情報がありましたら、
ささいなことでもいいので情報頂けるとありがたいです。

>  'System.InvalidOperationException' の初回例外が Oracle.DataAccess.dll で発生しました。
>  これが悪さをしているのでしょうか?(ODP.NET使用)TryCatch内でしたがエラーには
>  なりませんでした。

これが悪さをしているかどうかはこれだけの情報では(誰も)わかりません。
まずは、そのメッセージが何を示すものなのかを調べて、
対処できるのであれば対処した方が良いです。

>  単体テストとは、MbUnitを立ち上げた以降どのようにしたら
>  いいのでしょうか?教えていただけないでしょうか?

MbUnit を起動したら、テストプロジェクトのDLLを
読み込んでテストメソッドを実行するだけですよ。
(まあ、サンプルアプリで発生しない状況が作れているなら、
ここは無理にこだわる必要はないかと思います)


2010/9/2 阿形茂 <[E-MAIL ADDRESS DELETED]>:
> 久保様 下記内容につきまして、ご確認をお願いいたします。
>
> o Seasar.NET 無し + DBアクセスでどうなるか?
>    LoderLockは発生しませんでした。ただ気になるメッセージが表示されました。
>  'System.InvalidOperationException' の初回例外が Oracle.DataAccess.dll で発生しました。
>  これが悪さをしているのでしょうか?(ODP.NET使用)TryCatch内でしたがエラーには
>  なりませんでした。
>
> o Seasar.NETで最新バージョンを使うとどうなるか?
>  最新バージョンの1.3.18のDLLファイルに置き換えて実施しました。
>  LoderLockは発生しました。
> o 単体テスト・サンプルアプリではどうなるか?
>  サンプルファイルで検索・更新処理を実施しましたが、LoaderLockは
>  発生しませんでした。
>  単体テストとは、MbUnitを立ち上げた以降どのようにしたら
>  いいのでしょうか?教えていただけないでしょうか?
> o データプロバイダでODP.NETを使うとどうなるか?
>  Seasar.NET1.3.18+アプリで実施しましたが、
>  LoaderLockは発生しました。
>
> 清松様
>
> オラクルクライアントのバージョンは、ODTwithODAC1020221.exe
> となります。よろしくお願いいたします。
>
> お手間おかけし大変申し訳ありませんが、ご対応のほどよろしくお願いいたします。
>
> 2010年8月31日20:26 kubo <[E-MAIL ADDRESS DELETED]>:
>>
>> 久保(jflute)です。
>>
>> 簡単にまとめてみると:
>>
>> A. Seasar.NET + DBアクセスの実行時点で発生
>> B. Seasar.NETのバージョンはちょっと古い
>> C. 単体テスト・サンプルアプリは未実施
>> D. データプロバイダはADO.NET (ODP.NETではない)
>>
>> という感じですかね。
>> LoaderLock の根本を突き詰める作業(調査)は
>> 別途必要ですが、一方で発生トリガを追う作業も
>> やっていくと良いです。
>>
>> 例えば、
>> o Seasar.NET 無し + DBアクセスでどうなるか?
>> o Seasar.NETで最新バージョンを使うとどうなるか?
>> o 単体テスト・サンプルアプリではどうなるか?
>> o データプロバイダでODP.NETを使うとどうなるか?
>>
>> このあたりを探ってみて下さい。
>>
>>
>> > DLLファイルを上書きしてみましたが、エラーが発生したため
>> > 1.3.17を1.3.9に戻しました。
>>
>> どんなエラーが発生したのかわからないので、
>> なんとも言えません。
>> どのみち開発初期の段階であれば、
>> 最新バージョンを使うことをお奨めします。
>>
>> 2010/8/31 阿形茂 <[E-MAIL ADDRESS DELETED]>:
>> > 久保様 ご回答いたします。
>> >
>> > o アプリの開発中のどの時点で発生したのか?
>> >
>> > ORACLEとの検索・更新・挿入・削除が行われる
>> > 簡単なマスターメンテソフトを作成中に発生しました
>> > データベース接続→SQL実行→終了(エラー発生)
>> > データベースに接続しないで、終了すればLoaderLock
>> > エラーは発生しません。
>> >
>> >  A. 作り終わった時点で発生(それまでのテストでは発生しない)
>> >  B. (最初から) Seasar.NET を導入した時点で発生 ←ここになります。
>> >
>> >  C. 何かしらのあるプログラムを実装した時点で発生
>> >
>> > o Seasar.NET のバージョンを最新にしても発生するか?
>> > DLLファイルを上書きしてみましたが、エラーが発生したため
>> > 1.3.17を1.3.9に戻しました。
>> > (参照を全部削除してから、行えばよかったのでしょうか?)
>> >
>> > o Seasar.NET のサンプルプロジェクトは動くか?
>> > 未実施です。
>> >
>> > o Seasar.NET を使った単体テストは動くか?
>> > お恥ずかしい限りですが、単体テストのやり方がまだわからず
>> > やったことがありません。
>> >
>> > o (簡単なアプリを作って)Seasar.NET 無しのアプリは動くか?
>> >
>> > 未実施です。
>> >
>> > 未実施については、準備出来次第行ってみます。
>> >
>> > 清末様
>> > 始めまして、よろしくお願いいたします。
>> >
>> > ODP.NET(2.102.2.20)使用しようとしましたが、LoaderLockと
>> > 接続文字列の設定がうまくいかず、MicrosoftのADO.NET
>> > System.Data.OracleClient(2.0.0.0)を使用しています。
>> > 接続文字列の設定がうまくいくようになりましたので
>> > 戻したほうが、よろしいでしょうか?
>> >
>> > 藤井様
>> > 始めまして、よろしくお願いいたします。
>> >
>> > ORACLEへの接続と検索・追加・更新・削除は、確実に
>> > 実行されています。ログ内で問題がある箇所があったの
>> > でしょうか?
>> >
>> > 皆様お忙しいところ、ご助言いただき本当に
>> > ありがとうございます。解決に向けて努力
>> > するしだいです。よろしくお願い致します。
>> >
>> > 阿形
>> > _______________________________________________
>> > 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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>
>


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