[seasar-dotnet:1959] Re: dbflute.netでVPNクライアントから起動できない。

八鍬達也 [E-MAIL ADDRESS DELETED]
2011年 3月 17日 (木) 17:15:11 JST


久保様

八鍬です。

> CreateProxyObject()からExceptionが発生している
> とのことですが、その例外の名前やメッセージ、
> スタックトレースはどのようなものでしょうか?
QuillApplicationException:
メッセージコード:EQLL0037
内容:プロキシオブジェクト({0})の生成に失敗しました。コンストラクタ内の処理、アクセス修飾子、インターセプターを設定しているメソッドがインターフェースor
virtualになっているか、Castle.DynamicProxy.dllがSeasar.Quill.dllと同じ場所にあるか等をご確認下さい。
です。
なお、
Castle.DynamicProxy.dllがSeasar.Quill.dllは同じ場所にあります。


> また、アプリケーションとしてはうんともすんとも言わずに
> 落ちてしまう(例外メッセージがログにも出てこない)
> という最初の報告がありましたが、この例外が発生して
> からは処理がどうなっているでしょうか?
変わりありません。
なにも反応ないまま、プロセスが終了されてます。

> (例外ハンドリングする前にどこかで C# のプロセスが切れる!?)
問題の発生している実行環境では、ログの出力しかできないため、
そこまでは確認できていません。


> あと、CreateProxyObject()ってどこの
> クラスのメソッドでしょうか?
Seasar.Quill.QuillComponentクラスになります。





2011年3月17日16:05 kubo <[E-MAIL ADDRESS DELETED]>:
> 久保(jflute)です。
>
> DynamicProxyが関わってくると一層ややこしそうですね。
>
> CreateProxyObject()からExceptionが発生している
> とのことですが、その例外の名前やメッセージ、
> スタックトレースはどのようなものでしょうか?
>
> また、アプリケーションとしてはうんともすんとも言わずに
> 落ちてしまう(例外メッセージがログにも出てこない)
> という最初の報告がありましたが、この例外が発生して
> からは処理がどうなっているでしょうか?
> (例外ハンドリングする前にどこかで C# のプロセスが切れる!?)
>
> あと、CreateProxyObject()ってどこの
> クラスのメソッドでしょうか?
>
> 2011/3/17 八鍬達也 <[E-MAIL ADDRESS DELETED]>:
>> 久保様
>>
>> お世話になっております。
>> 八鍬です。
>>
>> エラーの発生している箇所を特定しましたが、
>> 対応の方法がわからず。
>> 苦慮しております。
>>
>> 実際にExceptionをなげているのは
>> ***
>> protected virtual void CreateProxyObject(
>>           Type componentType, Type receiptType, IAspect[] aspects)
>> ***
>> メソッドにでした。
>> この
>> ***
>> aopProxy = new DynamicAopProxy(componentType, aspects, parameters);
>>
>> ***
>> で、落ちていました。
>>
>> 関連する引数の値は、
>> componentType   {Name = "LoginInfoDao" FullName =
>> "MsiNet.AllowanceCalculation.Dbflute.ExDao.LoginInfoDao"}       System.Type
>> {System.RuntimeType}
>> receiptType     {Name = "LoginInfoDao" FullName =
>> "MsiNet.AllowanceCalculation.Dbflute.ExDao.LoginInfoDao"}       System.Type
>> {System.RuntimeType}
>> aspects {Seasar.Framework.Aop.IAspect[1]}       Seasar.Framework.Aop.IAspect[]
>>
>> といった感じだったのですが、
>> なにか原因は考えらえますでしょうか??
>>
>> また、他に注目すべき値などはありますでしょうか??
>>
>> 以上です。
>>
>>
>> 2011年3月15日19:43 kubo <[E-MAIL ADDRESS DELETED]>:
>>> 久保(jflute)です。
>>>
>>>> サンプルでの結果ですが、
>>>> 下記のサンプルでテストした結果、
>>>> 問題なく接続できることが確認できました。
>>>
>>> おおっと、なるほど再現しないということですね。
>>> ならば Quill を使った場合の接続を疑った方がよさそうですね。
>>>
>>> ちょっと力技ですが、Quill のソースを修正してログなどを
>>> 入れてみて(可能であればデバッガでもいいですけど)、
>>> エラーになる箇所をピンポイントで特定してしまうのが
>>> 一番早い解決につながるかもしれません。
>>>
>>> Quill でも ADO.NET を使っていることには変わりませんので、
>>> どこかにその使い方に違いがあって落ちる落ちないの差が出る
>>> と考えられますので、ここはオープンソースの特性を活かして、
>>> その差が何かってのを明確にすると解決法が見えてくるかと。
>>>
>>> 2011/3/15 八鍬達也 <[E-MAIL ADDRESS DELETED]>:
>>>> 久保様
>>>>
>>>> お世話になっております。
>>>> 八鍬です。
>>>>
>>>> サンプルでの結果ですが、
>>>> 下記のサンプルでテストした結果、
>>>> 問題なく接続できることが確認できました。
>>>>
>>>>>最終的には、ADO.NETやSQLServerとVPNで情報探していく
>>>> >必要があるのかなぁと推測しています。
>>>> こちらも調査してみます。
>>>> 加えて、ユーザの権限やセキュリティの設定も改めて確認しています。
>>>>
>>>>
>>>> 以下、使用したサンプルです。
>>>>
>>>> //サンプルコード概要
>>>> //Form1上にbutton1とtextBox1を配置して
>>>> //textBox1に接続文字列を入力して、接続できるかを確認する。
>>>> /*
>>>> private void button1_Click(object sender, EventArgs e)
>>>>        {
>>>>            string stConnectionString = string.Empty;
>>>>            System.Data.SqlClient.SqlConnection cSqlConnection = null;
>>>>            try
>>>>            {
>>>>                // 接続文字列を生成する
>>>>
>>>>                stConnectionString = textBox1.Text.ToString();
>>>>
>>>>                // SqlConnection の新しいインスタンスを生成する (接続文字列を指定)
>>>>                cSqlConnection = (
>>>>                    new System.Data.SqlClient.SqlConnection(stConnectionString)
>>>>                );
>>>>
>>>>                // データベース接続を開く
>>>>                cSqlConnection.Open();
>>>>
>>>>                // 接続に成功した旨を表示する
>>>>                MessageBox.Show("Microsoft SQL Server に接続されました");
>>>>
>>>>            }catch(Exception ex){
>>>>                MessageBox.Show(ex.Message.ToString());
>>>>
>>>>            }finally{
>>>>                // データベース接続を閉じる (正しくは オブジェクトの破棄を保証する を参照)
>>>>                if (cSqlConnection != null)
>>>>                {
>>>>                    cSqlConnection.Close();
>>>>                    cSqlConnection.Dispose();
>>>>                }
>>>>
>>>>            }
>>>>        }
>>>> */
>>>>
>>>> 以上です。
>>>>
>>>> 2011年3月15日16:34 kubo <[E-MAIL ADDRESS DELETED]>:
>>>>> 久保(jflute)です。
>>>>>
>>>>> 八鍬さん、ありがとうございます。
>>>>> 目の前の生活・仕事を頑張るのが一番の貢献ですね。
>>>>> お互い頑張りましょう。
>>>>>
>>>>> ADO.NETだけで再現するのであれば、
>>>>> 次は英語版を日本語版にして試すって順序ですが、
>>>>> なんとなくですがそれが影響するとはあまり思えないですね。
>>>>> 最終的には、ADO.NETやSQLServerとVPNで情報探していく
>>>>> 必要があるのかなぁと推測しています。
>>>>>
>>>>>
>>>>>
>>>>> #
>>>>> # 皆様へ
>>>>> # 反応は遅れるかもしれませんが、
>>>>> # DBFluteの問い合わせなど変わらず受け付けています。
>>>>> # 効率良くDBFluteを使ってもらうことが、ささやかながらも
>>>>> # 間接的な貢献につながると思いますので。
>>>>> #
>>>>>
>>>>> 2011/3/15 八鍬達也 <[E-MAIL ADDRESS DELETED]>:
>>>>>> 久保様
>>>>>>
>>>>>> ご無事でなによりです。
>>>>>> こんなときにも、仕事があるのはとても恵まれているのだと、
>>>>>> ひしひし実感しております。
>>>>>>
>>>>>>> ADO.NET を直接使って、ログイン情報を取得する
>>>>>>> だけの本当に簡易なアプリで作って、試してみると
>>>>>>> 良いと思います。それで再現するかしないかで、
>>>>>>> アプローチする領域が変わってくるのかなと。
>>>>>> アドバイスありがとうございます。
>>>>>> 試してみます。
>>>>>>
>>>>>> 以上です。
>>>>>>
>>>>>> 2011年3月15日12:00 kubo <[E-MAIL ADDRESS DELETED]>:
>>>>>>> 久保(jflute)です。
>>>>>>>
>>>>>>> 八鍬さん、こんにちは
>>>>>>> DBFluteの話ができるのがとてもうれしいです。
>>>>>>>
>>>>>>> と言いつつも、ちょっと原因は全くの不明です。
>>>>>>> こういうときは決まって、消去法で原因領域を
>>>>>>> 狭めていくのがよいかと思います。
>>>>>>>
>>>>>>> ADO.NET を直接使って、ログイン情報を取得する
>>>>>>> だけの本当に簡易なアプリで作って、試してみると
>>>>>>> 良いと思います。それで再現するかしないかで、
>>>>>>> アプローチする領域が変わってくるのかなと。
>>>>>>>
>>>>>>> 2011/3/15 八鍬達也 <[E-MAIL ADDRESS DELETED]>:
>>>>>>>> 八鍬と申します。
>>>>>>>>
>>>>>>>> dbflute.net×CSharpで、WindowsFormアプリケーションを作成しています。
>>>>>>>>
>>>>>>>> 特定の環境下で、アプリケーションが起動しない問題が起きています。
>>>>>>>> (アプリケーションエラーにもならず、ウィンドウが立ち上がらない)
>>>>>>>> DBFluteのログを確認したのですが、
>>>>>>>> データベースへの接続の前に処理が中断されているようでした。
>>>>>>>>
>>>>>>>> サーバローカル上にEXEを配置した場合は、問題なく起動できたので、
>>>>>>>> dbfluteが直接関係しているとは考えにくいのですが。。。
>>>>>>>>
>>>>>>>> データベースの接続については、
>>>>>>>> クライアントからマネージメントスタジオでの接続、
>>>>>>>> sqlcmdによる接続を確認しています。
>>>>>>>> また、TCPポート1433については開放してあります。
>>>>>>>>
>>>>>>>> 気になる点としては、サーバ、クライアントともにOSが英語版であるため、
>>>>>>>> ロケーションによる問題が発生しないか?という点と
>>>>>>>> 失敗している環境下では、VPNを使用しているという点です。
>>>>>>>>
>>>>>>>> 原因について、どのようなことが考えられるか、
>>>>>>>> ご教授いただけないでしょうか??
>>>>>>>>
>>>>>>>>
>>>>>>>> 以下、詳細になります。
>>>>>>>> --
>>>>>>>> DBfluteのバーション:dbflute-0.8.9.22
>>>>>>>> データベース:SQLSQEVER2005(英語版)
>>>>>>>> クライアント:winXP(英語版)
>>>>>>>> .NetFramework3.5SP1
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> 接続に失敗する環境下で
>>>>>>>> DBFluteのログをみると、
>>>>>>>>
>>>>>>>> ******************************
>>>>>>>> 2011-03-14 15:13:51,933 [1] INFO  Seasar.Quill.QuillConfig - Quill
>>>>>>>> configuration file path:C:\Documents and
>>>>>>>> Settings\XXXXXX\Desktop\exec\Seasar.Quill.dll.config
>>>>>>>> 2011-03-14 15:13:51,949 [1] INFO  Seasar.Quill.QuillContainer - Quill
>>>>>>>> configuration file (exist = true, none = false):True
>>>>>>>> 2011-03-14 15:13:51,949 [1] INFO  Seasar.Quill.QuillConfig - There is
>>>>>>>> no additional assembly.
>>>>>>>> 2011-03-14 15:13:51,949 [1] INFO  Seasar.Quill.QuillConfig - The data
>>>>>>>> source is generated by using the setting of the Quill configuration
>>>>>>>> file.
>>>>>>>> ******************************
>>>>>>>>
>>>>>>>> で止まっています。
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> 通常(接続できる)は、
>>>>>>>> ******************************
>>>>>>>> 2011-03-11 14:27:19,230 [1] INFO  Seasar.Quill.QuillConfig - Quill
>>>>>>>> configuration file
>>>>>>>> path:C:\Users\XXXXX\Documents\Works\WorkXXXX\Release\2011-03-11_1425\exec\Seasar.Quill.dll.config
>>>>>>>> 2011-03-11 14:27:19,235 [1] INFO  Seasar.Quill.QuillContainer - Quill
>>>>>>>> configuration file (exist = true, none = false):True
>>>>>>>> 2011-03-11 14:27:19,236 [1] INFO  Seasar.Quill.QuillConfig - There is
>>>>>>>> no additional assembly.
>>>>>>>> 2011-03-11 14:27:19,244 [1] INFO  Seasar.Quill.QuillConfig - The data
>>>>>>>> source is generated by using the setting of the Quill configuration
>>>>>>>> file.
>>>>>>>> 2011-03-11 14:27:19,549 [1] DEBUG
>>>>>>>> MsiNet.AllowanceCalculation.Dbflute.AllCommon.S2Dao.S2DaoMetaDataFactoryImpl
>>>>>>>> - ...Creating daoMetaData for 'LoginInfoDao'.
>>>>>>>> 2011-03-11 14:27:19,777 [1] DEBUG
>>>>>>>> XXXXX.XXXXX.Dbflute.AllCommon.S2Dao.S2DaoMetaDataExtension -
>>>>>>>> ...Initializing sqlCommand for SelectList().
>>>>>>>> 2011-03-11 14:27:19,825 [1] DEBUG XXXXX.XXXXX.Dbflute.AllCommon.XLog -
>>>>>>>> SqlCommand Initialization Cost: [00m00s275ms]
>>>>>>>> 2011-03-11 14:27:19,835 [1] DEBUG XXXXX.XXXXX.Dbflute.AllCommon.XLog -
>>>>>>>> /================================================================================
>>>>>>>> 2011-03-11 14:27:19,835 [1] DEBUG XXXXX.XXXXX.Dbflute.AllCommon.XLog -
>>>>>>>>
>>>>>>>> LoginInfoBhv.SelectEntity()
>>>>>>>> 2011-03-11 14:27:19,835 [1] DEBUG XXXXX.XXXXX.Dbflute.AllCommon.XLog -
>>>>>>>>
>>>>>>>> ==========================/
>>>>>>>> 2011-03-11 14:27:19,839 [1] DEBUG XXXXX.XXXXX.Dbflute.AllCommon.XLog -
>>>>>>>> SystemServiceImpl.Login() --> LoginInfoBhv.SelectEntity() --> ...
>>>>>>>> 2011-03-11 14:27:20,073 [1] DEBUG Seasar.Framework.Util.DataSourceUtil
>>>>>>>> - Logical connection got
>>>>>>>> 2011-03-11 14:27:20,074 [1] DEBUG
>>>>>>>> MsiNet.AllowanceCalculation.Dbflute.AllCommon.QLog -
>>>>>>>> select  dfloc.id as c0, dfloc.login_id as c1, dfloc.login_pw as c2,
>>>>>>>> dfloc.user_nm as c3
>>>>>>>>  from login_info dfloc
>>>>>>>>  where dfloc.login_id = 'XXXXX'
>>>>>>>> 2011-03-11 14:27:20,144 [1] DEBUG Seasar.Framework.Util.ConnectionUtil
>>>>>>>> - Logical connection closed
>>>>>>>> 2011-03-11 14:27:20,150 [1] DEBUG XXXXX.XXXXX.Dbflute.AllCommon.XLog -
>>>>>>>> ===========/ [00m00s306ms (1) result={5, XXXXX, , , , , , }]
>>>>>>>> 2011-03-11 14:27:20,150 [1] DEBUG XXXXX.XXXXX.Dbflute.AllCommon.XLog -
>>>>>>>>
>>>>>>>> ******************************
>>>>>>>>
>>>>>>>> となり、ログインに関する情報を取得するのですが。。。
>>>>>>>>
>>>>>>>>
>>>>>>>> データベースへ接続できない場合(DBユーザのパスワードのあやまりなど)は、
>>>>>>>> ******************************
>>>>>>>> 2011-03-11 14:42:01,081 [1] INFO  Seasar.Quill.QuillConfig - Quill
>>>>>>>> configuration file
>>>>>>>> path:C:\Users\XXXXX\Documents\Works\WorkXXXXX\Release\2011-03-11_1425\exec\Seasar.Quill.dll.config
>>>>>>>> 2011-03-11 14:42:01,085 [1] INFO  Seasar.Quill.QuillContainer - Quill
>>>>>>>> configuration file (exist = true, none = false):True
>>>>>>>> 2011-03-11 14:42:01,086 [1] INFO  Seasar.Quill.QuillConfig - There is
>>>>>>>> no additional assembly.
>>>>>>>> 2011-03-11 14:42:01,094 [1] INFO  Seasar.Quill.QuillConfig - The data
>>>>>>>> source is generated by using the setting of the Quill configuration
>>>>>>>> file.
>>>>>>>> 2011-03-11 14:42:01,376 [1] DEBUG
>>>>>>>> XXXXX.XXXXX.Dbflute.AllCommon.S2Dao.S2DaoMetaDataFactoryImpl -
>>>>>>>> ...Creating daoMetaData for 'LoginInfoDao'.
>>>>>>>> 2011-03-11 14:42:01,430 [1] DEBUG
>>>>>>>> XXXXX.XXXXX.Dbflute.AllCommon.S2Dao.S2DaoMetaDataExtension -
>>>>>>>> ...Initializing sqlCommand for SelectList().
>>>>>>>> 2011-03-11 14:42:01,447 [1] DEBUG XXXXX.XXXXX.Dbflute.AllCommon.XLog -
>>>>>>>> SqlCommand Initialization Cost: [00m00s071ms]
>>>>>>>> 2011-03-11 14:42:01,455 [1] DEBUG XXXXX.XXXXX.Dbflute.AllCommon.XLog -
>>>>>>>> /================================================================================
>>>>>>>> 2011-03-11 14:42:01,455 [1] DEBUG XXXXX.XXXXX.Dbflute.AllCommon.XLog -
>>>>>>>>
>>>>>>>> LoginInfoBhv.SelectEntity()
>>>>>>>> 2011-03-11 14:42:01,455 [1] DEBUG XXXXX.XXXXX.Dbflute.AllCommon.XLog -
>>>>>>>>
>>>>>>>> ==========================/
>>>>>>>> 2011-03-11 14:42:01,458 [1] DEBUG XXXXX.XXXXX.Dbflute.AllCommon.XLog -
>>>>>>>> SystemServiceImpl.Login() --> LoginInfoBhv.SelectEntity() --> ...
>>>>>>>>
>>>>>>>> ******************************
>>>>>>>>
>>>>>>>> となっています。
>>>>>>>> _______________________________________________
>>>>>>>> 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 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 メーリングリストの案内