[seasar-dotnet:2404] Re: 初心者的な質問で申し訳ないですが・・・(追加質問ありです)

志水正幸 [E-MAIL ADDRESS DELETED]
2015年 1月 14日 (水) 20:52:30 JST


志水です。
超お世話になっております。

久保さん、ご教示ありがとうございます。

AccessContextも何とか設定でき
とりあず、DB作成までこじつけました。
ちゃんと動作するか
DBリンク4つを超える接続とAccessContext
の検証を始めたいと思います。

あとは、コネクションプールの設定先ですが、
お手数ですがお願いします。

以上、有難うございました。



> 久保(jflute)です
>
>> ■DBリンクはセッションあたりの接続数が制限(初期値は4)されていますという 記事を目にしたのですが
>> 外だしSQLで連結して4つを超えると接続エラーとなるということでしょうか?
> おっと、これはやったことがないので検証してみてください、
> としか言いようが無いです。。。
>
>> AccessContext
> Process と Module が余ってるのでそこが使えます。
> が、ちょっと変なので、
> AccessValueMap を使うといいと思います。
> (Mapで何でも入ります)
>
>
> 2015-01-14 16:46 GMT+09:00 志水正幸 <ie2m-smz @ asahi-net.or.jp>:
>> 志水です。
>> 超お世話になっております。
>>
>> 久保さん、早速の回答ありがとうございます。
>> なるほど、よくわかりました。
>> 浅い知識なので自信がなかったですが
>> 私の認識は間違ってはないようで安心しました。
>>
>> 小谷さん
>>  ->お手数ですがお願いします。
>>
>>
>> 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 mailing list
>> seasar-dotnet @ ml.seasar.org
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
> _______________________________________________
> seasar-dotnet mailing list
> seasar-dotnet @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet


---
このEメールはアバスト アンチウイルスによりウイルススキャンされています。
http://www.avast.com



seasar-dotnet メーリングリストの案内