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

kubo [E-MAIL ADDRESS DELETED]
2011年 3月 17日 (木) 17:30:33 JST


久保(jflute)です。

ちょっと急いで書いてます。
どこかでみたような例外ではありますね。
ちょっと前提を整理した方がいいかもしれないので、
念のためですが、実行環境の.NETのバージョンが、
利用している Quill の対応バージョンと合ってるか
どうか確認してみて下さい。
(.NET-4.0対応のものか、そうでないか)
修正して試したソースにも対応バージョンが
決まっている、一旦その辺を整理してみて下さい。

関東は消費電力ピーク時に需要と供給がギリギリに
なるかもしれないとのことで、自分もPC落とすので、
すぐには反応できません。

2011/3/17 八鍬達也 <[E-MAIL ADDRESS DELETED]>:
> 久保様
>
> 八鍬です。
>
>> 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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


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