[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.confighttp://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 メーリングリストの案内