[Seasar-user:6213] Re: [DBFlute] 初回テーブルアクセスについて

kubo [E-MAIL ADDRESS DELETED]
2007年 2月 18日 (日) 14:36:01 JST


久保です。

米原さんへ

> >A. BeanMetaDataの初期化
> >B. 該当DaoクラスのDaoメソッド全ての初期化
> 
> >です。
> 
> そうですね。
> 検証頂いた内容によると、やむをえないといった感じですよね。
>
> >こちら、「どうしても初回アクセスを速くしなければリリースできない」というような状況でしょうか?
> 
> 現在開発中で初回アクセスが頻発するため、気になって確認させて頂いた次第です。
> おっしゃる通り、設定の切り替えができると有難いですね。


実験的ではありますが、DBFluteにてメソッド単位の初期化を
指定できるようにしました。
どうしても気になるようでしたら設定してみて下さい。
(但し、結合TestやRelease時には元に戻すことをお奨めします)

isAvailableDaoMethodLazyInitializingをtrueにすると、
初回アクセス時は、呼び出されたDao-Methodのみ初期化が発生します。

  ※これは「B」に関する対応となります。
    「A」の初期化処理はどうしても必要なため実行されます。

  - - - - - - - - - - - - - - - - - - - - - - - - - 
  切り替えにgenerate実行(自動生成し直し)が必要となりますが、
  いずれ、dbflute.diconの一部の設定を切り替えるだけで
  On/Offできるようにしたいと考えております。
    もしくは
  xxx.allcommon.s2dao.S2DaoMetaDataExtensionの
  setupSqlCommand()とgetSqlCommand()のoverrideを消せば
  このPropertyをfalseにしたときと同じ動作になります。
  - - - - - - - - - - - - - - - - - - - - - - - - - 


DBFlute-0.4.2 Snapshot (2007/02/18 本日版) を公開しています。
上記の修正はこのVersionに反映されています。

http://dbflute.sandbox.seasar.org/ja/index.html
http://dbflute.sandbox.seasar.org/ja/advance_properties.html

# _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#                                                   Other Property
#                                                         _/_/_/_/
# /---------------------------------------------------------------------------
# [DaoMethodLazyInitializing] (NotRequired - Default 'false')
#   [true]
#     S2Dao initialize per dao method.
#
#   [false]
#     S2Dao initialize per dao Interface(default behavior).
#
#   *{Java Only}
#
torque.isAvailableDaoMethodLazyInitializing = true
# ----------------/

※ちなみにC#版は、DaoMetaDataImplのGetSqlCommand()がvirtualでないため
  overrideできないので保留です。

-- 
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
kubo   <[E-MAIL ADDRESS DELETED]>
jflute <http://d.hatena.ne.jp/jflute>
株式会社ビルドシステム <http://www.buildsystem.co.jp>
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/





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