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

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2011年 10月 25日 (火) 17:06:25 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

-- 
Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]>



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