[seasar-dotnet:2402] Re: 初心者的な質問で申し訳ないですが・・・(追加質問ありです)
志水正幸
[E-MAIL ADDRESS DELETED]
2015年 1月 14日 (水) 16:46:10 JST
志水です。
超お世話になっております。
久保さん、早速の回答ありがとうございます。
なるほど、よくわかりました。
浅い知識なので自信がなかったですが
私の認識は間違ってはないようで安心しました。
小谷さん
->お手数ですがお願いします。
DBLINKと複数DBは一長一短で判断が難しいですね。。
DBLINKの簡単な方にしたいが、複数DBも視野にいれるべきか・・・・
でも、設定が難しそう・・・、ちょっと逃亡したくなっちゃいました(笑)
設定していてまたまた疑問があり、
追加で質問させてください。
■DBリンクはセッションあたりの接続数が制限(初期値は4)されていますという
記事を目にしたのですが
外だしSQLで連結して4つを超えると接続エラーとなるということでしょうか?
■commonColumnMap で以下のように、DateTime型でなくて全部
Varcharにしたいのです。
(私はしたくないんですが・・適当に無理ともいえないorz)
それも、ADD_DT=追加日付、ADD_TM=追加時間って感じで分ける必要があって。
この場合って自動生成後にAccessContextへ自分でメソッド追加し
ないといけないのでしょうか?
; commonColumnMap = map:{
; ADD_ID=VARCHAR ; ADD_DT=VARCHAR ; ADD_TM=VARCHAR
; UPD_ID=VARCHAR ; UPD_DT=VARCHAR ; UPD_TM=VARCHAR
}
; beforeInsertMap = map:{
; ADD_ID = $$AccessContext$$.GetAccessUserOnThread()
; ADD_DT = ?
; ADD_TM = ?
; UPD_ID = entity.RegisterUser
; UPD_DT = ?
; UPD_TM = ?
}
; beforeUpdateMap = map:{
; UPD_ID = $$AccessContext$$.GetAccessUserOnThread()
; UPD_DT =?
; UPD_TM = ?
}
以上、宜しくお願いします。。
> 久保です
>
> 志水さん、こんにちは
>
>> ■DBFLUTEはコネクションプーリングをデフォルトで使用していると
>> 勝手に思いこんでいるのですが合ってますか?
> DBFlute.NETの方は、S2Dao.NETを経由しています。
> コネクションプールしてないとお話にならないと思うので、
> どう考えてもしていると思いますが、一瞬どこでやってたっけ?って。。。
>
> to 小谷くん
> Seasar.NETの中でConnectionPoolしてるんだっけかな?
> (JavaだとSeasar自体がConnectionPool持ってるけど)
>
>> ■DBFLUTEは1リクエスト内ではコネクションは張りっぱなしと思っていますが 合ってますか?
> スレッドトランザクション方式になっている、その通りです。
> トランザクションを開始するとDataSourceの常に同じコネクションを戻します。
> (同じスレッド内では)
>
>> ■WEBでは基本的にリクエスト跨いだロック(For Update)はできないと思ってい ますが合ってますか?
> そうですね。リクエスト間でトランザクションを貼りっぱなしに
> しないといけないので、まったくやったことはないです。
>
>> ■お客から接続コストを抑えるためにコネクションをセッションに
>> 保持して使い 回しできないの?って質問されたんですが
> コネクションプールしていればそんなことする必要ないですね。
> というか、セッションに入れたらセッション消えるまでそのコネクションが
> 残っちゃうので、逆に枯渇しそうですね。その方式は聞いたことないです。
>
>> ■DBFLUTEのコネクションプーリングの最大数などは、どこで管理しているので しょうか?
> これもSeasar.NETの方の話次第で。
>
>> ■DBFLUTEでDBLLINKしているテーブルを更新したいのですが
> DBLLINKに対してシノニムを作ればできると思います。For Updateできるかと。
> 手元のテーブルとして扱えるようになります。(こちらマニアックですが実績ありです)
>
>> ■DBLINKって遅いと聞きましたが、どの辺が遅いのでしょうか?
>> 通常のプライマリキーでのSELECTではどうなんでしょう?
> 別インスタンスのDBに対してのSQLゲートウェイな感じなので、
> 直接SQLを投げるよりかは遅いと思います。(経由してる分)
> ただ、どの程度遅いのかはパフォーマンス検証しないとわからないですが。
> (許容できるレベルなのかどうか。許容レベルは業務によって変わるでしょうし)
>
>> ■マスタ類とかの参照があるなら、DBLINK使うより、複数DB接続の方がいいので しょうか?
>> DBLINKと複数DBのメリットとデメリット(判断基準みたいなもの)ってなんで しょう?
> 直接参照できるなら直接参照の方が世話ないかと。スピードも環境構築も。
> DBLinkのいいところは、手元のテーブルと同じ扱いができるところに尽きます。
> 要は、SQL的に手元のテーブルとリモートのテーブルを結合ができるというところです。
> 複数DBではそれができません。
> マスタ類のデータを個別のクエリで取得するので構わないのであれば、
> 複数DBの方がいいかなと。SQLの中で一緒に扱いたいならDBLinkですね。
>
>> 以上、本当にこんな初心者的な質問、
>> だれも頼る人がいないもので・・・
> そのために、オープンソースコミュニティのMLがあるんですよー!(^^
> _______________________________________________
> seasar-dotnet mailing list
> seasar-dotnet @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>
---
このEメールはアバスト アンチウイルスによりウイルススキャンされています。
http://www.avast.com
seasar-dotnet メーリングリストの案内