[Seasar-user:21098] Re: [Doma]バージョン1.19.0でのデータソース切替について

h-kudo [E-MAIL ADDRESS DELETED]
2011年 10月 25日 (火) 18:07:31 JST


工藤です。

下記、了解いたしました。
うすうす気づいてはいたのですがはっきりしてよかったです。
ご回答のほどありがとうございました。

> 中村(taedium)です。
> 
>> 当方もデータソースの切替を実施しており
>>
org.seasar.doma.jdbc.Config#getDataSourceNameをOverrideしたところで
>> 切替処理を実装しています。
>> (DataSourceFactory#setSelectableDataSourceNameの実行)
> 
> DataSourceFactory#setSelectableDataSourceNameの実行を
> Config#getDataSourceNameで行うのは適切ではありませんので
> ドキュメントにあるように、Servlet
FilterやInterceptorで行ってください。
> http://s2container.seasar.org/2.4/ja/jdbc.html#DataSourceDynamicSwiching
> 
>> 1.19のJpetstoreの方で確認しましたが
>>
どうもConfig#getDataSourceNameが実行されないように見えるのでちょっと気になりメールさせていただきました。
> 
> Config#getDataSourceNameは必要となるまで呼ばれないように
> なりました(これまではDaoのコンストラクタの実行時という
> 誤ったタイミングで実行されていました)。
> 
> では、いつ呼ばれるかですが、
>
シーケンスやテーブルを使ってIDを採番する処理から呼び出されます
>
JPetStoreのようにIDの採番機能を使っていない場合には呼び出されないです。
> 
>> お世話になります。
>> 工藤と申します。
>> 
>>
現在、以下のプロダクトを利用させていただきWebアプリケーションを開発しております。
>> s2-framework:2.4.44
>> s2-extension:2.4.44
>> s2-tiger:2.4.44
>> cubby:2.0.9
>> Doma:1.18.0
>> 
>> 開発中のWebアプリにて
>> 1.18.0から1.19.0へバージョンアップし動作確認してみたところ
>> 以下のエラーが発生するようになってしまいました。
>>
(タイミングとしてはログイン画面のログインボタン押下時でアプリ上DAOのメソッドが一番最初によばれるところです)
>> 
>> ----
>> 致命的: サーブレット default
>> のServlet.service()が例外を投げました
>> org.seasar.framework.exception.EmptyRuntimeException:
>>
[ESSR0007]dataSourceNameはnullあるいは空であってはいけません
>> 	at
>>
org.seasar.extension.datasource.impl.SelectableDataSourceProxy.getDataSource(SelectableDataSourceProxy.java:65)
>> 	at
>>
org.seasar.extension.datasource.impl.SelectableDataSourceProxy.getConnection(SelectableDataSourceProxy.java:82)
>> 	at
>>
org.seasar.doma.internal.jdbc.util.JdbcUtil.getConnection(JdbcUtil.java:40)
>> 	at
>>
org.seasar.doma.internal.jdbc.command.SelectCommand.execute(SelectCommand.java:53)
>> ...
>> ----
>> 
>> 当方もデータソースの切替を実施しており
>>
org.seasar.doma.jdbc.Config#getDataSourceNameをOverrideしたところで
>> 切替処理を実装しています。
>> (DataSourceFactory#setSelectableDataSourceNameの実行)
>> 
>> こちらのスレのように
>> http://ml.seasar.org/archives/seasar-user/2011-October/021057.html
>>
Interceptor実行時に実施するように修正をする等の対応が必要になるのでしょうか?
>> 
>> 1.19のJpetstoreの方で確認しましたが
>>
どうもConfig#getDataSourceNameが実行されないように見えるのでちょっと気になりメールさせていただきました。
>> 
>> 以上、よろしくお願いいたします。
>> ---
>> h-kudo <[E-MAIL ADDRESS DELETED]>
>> 
>> _______________________________________________
>> Seasar-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-user


Seasar-user メーリングリストの案内