[seasar-dotnet:2126] Re: QuillのDAO機能でデータベース接続が取得できない
kotani.k
[E-MAIL ADDRESS DELETED]
2011年 12月 28日 (水) 07:03:12 JST
ASOさん
こんにちは。小谷です。
問題が解決されたようで良かったです!
設定ファイルへのOracle.DataAccess.dll等のアセンブリ設定については
一応、
https://www.seasar.org/svn/s2container.net/trunk/s2container.net/source/Seasar.Tests/App.config
や
http://s2container.net.seasar.org/ja/db-appconfig.html#AppConfig
に設定例が書かれていますが、明示的に「こう設定して下さい」とは書いていないですね。
ドキュメントの修正を検討したいと思います。
2011年12月26日12:27 ASO Katsumi <[E-MAIL ADDRESS DELETED]>:
> こんにちは、ASOです。
>
> 先日来、当MLで頂いたご指摘・アドバイスを頼りに色々と試してきましたが状況は好転せず、
> 一からVisual Studioのプロジェクトを見直したところ、アセンブリの読み込み指定が
> 漏れていたという結論に達しました。
>
> Oracle.DataAccess.dllを、参照設定やプロジェクトにコピーする設定となっていました。
> Web.Configにて、Quill.Daoのロード対象のアセンブリとして指定したところ、件の問題が
> 再現しなくなりました。
>
> 変更内容:次の13行〜16行を追記した。
> ---- ここから
> 1: <quill>
> 2: <dataSources>
> 3: <dataSource name="ds">
> 4: <provider>ODP</provider>
> 5: <connectionString>"User Id=dev1;Password=dev1;Data Source=orcl;"</connectionString>
> 6: <class>Seasar.Extension.Tx.Impl.TxDataSource</class>
> 7: </dataSource>
> 8: </dataSources>
> 9: <!-- ロード対象アセンブリ -->
> 10: <assemblys>
> 11: <assembly>Seasar</assembly>
> 12: <assembly>Seasar.Dao</assembly>
> 13: <assembly>
> 14: Oracle.DataAccess, version=2.112.2.0, Culture=Neutral,
> 15: PublicKeyToken=89b483f429c47342
> 16: </assembly>
> 17: </assemblys>
> 18: </quill>
> ---- ここまで
>
> 最終的に、設定漏れというオチで大変申し訳ありません。
> 情報提供やアドバイス頂いた皆さん、どうもありがとうございました。
> 本件は、以上でクローズさせて頂きます。
>
> P.S.
> 参照設定やプロジェクトにコピーでも、最初のサービス開始時点では成功する点については、
> 不思議な感じが残っているのですが、当面の問題が(恐らく)正しい方向でクリアできたので、
> 追及はしない事にしました。
>
>
> On Tue, 06 Dec 2011 16:53:12 +0900, ASO Katsumi <[E-MAIL ADDRESS DELETED]> wrote:
>> こんにちは、ASOです。
>>
>> 現在、WCF+Oracle(ODP)+S2(Quill)でWCFサービス開発を行っています。
>> 作成したWCFサービスを、IIS上に配置し、
>> 1 初回アクセスは問題無く動作する。
>> 2 サービスのタイムアウトを待つ。
>> 3 再度同じサービスにアクセスする。
>> という操作を行ったところ、3の段階で
>> 「Seasar.Framework.Container.Factory.ClassNotFoundRuntimeException」例外が発生し、処理が中断されます。
>> 「詳細は "Oracle.DataAccess.Client.OracleConnection"」との事です。
>> # ログに記録されたStackTraceを文末に掲載します。
>>
>> この現象を回避するか、あるいは原因を突き止め対策したいと思っており、
>> 情報収集していますが、これといったリソースを見つけられず、MLで相談しようと
>> 考えた次第です。
>>
>> 動作環境は次の通りです。
>> Windows Server 2008 R2
>> IIS 7.5
>> .NET Framework V4
>> WCF
>> Seasa2.NET 1.4.0 RC2 改 ([seasar-dotnet:2093]で井上さんに教えて頂いた内容です)
>>
>> Oracle 11g
>> ODP (32bit)
>> 以上。
>>
>> ログ中の「Aaaaa.Bbbbbb.MainService.MainService」というクラスがServiceContractであり、
>> Implementation属性を付けてあります。
>>
>> 同じくログ中の「Aaaaa.Bbbbbb.MainService.MainService.Login」というメソッドがOperationContractであり、
>> Transaction、Aspect(ログ出力インターセプタークラス)という各属性が付いています。
>>
>> 何か、お気付きの事があればお知らせ下さい。
>> 情報の不足がございましたら、ご指導下さい。
>> 情報ポインタをご紹介頂くだけでも結構です。
>> よろしくお願い致します。
>>
>> 以下、StackTraceです。
>> 2011-12-06 12:14:48,188 ERROR Server-Name request-userid [EXCEPTION] Aaaaa.Bbbbbb.MainService.MainService.Login [ESSR0071]SQLで例外が発生しました。理由はSeasar.Framework.Container.Factory.ClassNotFoundRuntimeException: [ESSR0044]クラスが見つかりませんでした。詳細は "Oracle.DataAccess.Client.OracleConnection"
>> at Seasar.Extension.ADO.Impl.DataProviderDataSource.ForName(String name)
>> at Seasar.Extension.ADO.Impl.DataProviderDataSource.GetConnection()
>> at Seasar.Extension.Tx.Impl.TxDataSource.GetConnection()
>> at Seasar.Extension.ADO.Impl.AbstractSelectableDataSourceProxy.GetConnection()
>> at Seasar.Framework.Util.DataSourceUtil.GetConnection(IDataSource dataSource)
>> 2011-12-06 12:14:48,188 ERROR Server-Name request-userid [EXCEPTION] Aaaaa.Bbbbbb.MainService.MainService.Login Seasar
>> 2011-12-06 12:14:48,188 ERROR Server-Name request-userid [EXCEPTION] Aaaaa.Bbbbbb.MainService.MainService.Login at Seasar.Framework.Util.DataSourceUtil.GetConnection(IDataSource dataSource)
>> at Seasar.Extension.Tx.Impl.TransactionContext.OpenConnection()
>> at Seasar.Extension.Tx.Impl.TransactionContext.Begin()
>> at Seasar.Extension.Tx.Impl.LocalRequiredTxHandler.HandleTransaction(IMethodInvocation invocation)
>> at Seasar.Extension.Tx.Impl.LocalRequiredTxHandler.Handle(IMethodInvocation invocation, Boolean alreadyInTransaction)
>> at Seasar.Extension.Tx.TransactionInterceptor.Invoke(IMethodInvocation invocation)
>> at Seasar.Framework.Aop.Impl.DynamicProxyMethodInvocation.Proceed()
>> at Aaaaa.Bbbbbb.Server.LogAop.Invoke(IMethodInvocation invocation) in C:\Aaaaa\Source\Aaaaa.Bbbbbb.Server\Aaaaa\LogAop.vb:line 63
>> at Seasar.Framework.Aop.Impl.InterceptorAdapter.Intercept(IInvocation invocation)
>> at Castle.DynamicProxy.AbstractInvocation.Proceed()
>> at Castle.Proxies.LoginFacadeProxy.Execute(RequstParameter req)
>> at Aaaaa.Bbbbbb.MainService.MainService.Login(RequstParameter req) in C:\Aaaaa\Source\Aaaaa.Bbbbbb.MainService\Aaaaa\MainService.svc.vb:line 39
>>
>> _______________________________________________
>> 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 メーリングリストの案内