<div dir="ltr">小谷です。<div><br></div><div><a href="http://Seasar.xn--netado-yc4e9bt795bkq4g.NET" target="_blank">Seasar.NETは内部でADO.NET</a>を使ってDB接続を行っており、</div><div>コネクションプーリングは、この<a href="http://ADO.NET" target="_blank">ADO.NET</a>に対応したデータプロバイダ側</div><div>(Oracleなら<a href="http://ODP.NET">ODP.NET</a>など)で実装されています。</div><div><a href="http://msdn.microsoft.com/en-us/library/vstudio/bb399543%28v=vs.100%29.aspx">http://msdn.microsoft.com/en-us/library/vstudio/bb399543%28v=vs.100%29.aspx</a><br></div><div><span style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif;font-size:11.8181819915771px"><br></span></div><div><span style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif;font-size:11.8181819915771px">Oracleをご利用ということでデータプロバイダは<a href="http://ODP.NET">ODP.NET</a>をお使いになっているのかなと思います。</span></div><div><font color="#000000" face="arial, helvetica, sans-serif"><span style="font-size:12px"><a href="http://ODP.NET">ODP.NET</a>であれば、コネクションプーリングのON/OFF、最大接続数などの設定は</span></font></div><div><font color="#000000" face="arial, helvetica, sans-serif"><span style="font-size:12px">接続文字列の属性で指定すればよいはず(詳しくはOracle公式ページなどで)。</span></font></div><div><a href="http://codezine.jp/article/detail/1503">http://codezine.jp/article/detail/1503</a><br></div><div><div><a href="http://www.oracle.com/technetwork/issue-archive/2006/06-jul/o46odp-097508.html">http://www.oracle.com/technetwork/issue-archive/2006/06-jul/o46odp-097508.html</a><br></div><div>(「<span style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif;font-size:11.8181819915771px">Connection Pooling Overview」の辺りを参照)</span></div></div><div><span style="color:rgb(0,0,0);font-family:arial,helvetica,sans-serif;font-size:11.8181819915771px"><br></span></div><div><font color="#000000" face="arial, helvetica, sans-serif"><span style="font-size:12px">以上です。</span></font></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2015年1月14日 15:56 kubo <span dir="ltr">&lt;<a href="mailto:dbflute@gmail.com" target="_blank">dbflute@gmail.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">久保です<br>
<br>
志水さん、こんにちは<br>
<br>
&gt; ■DBFLUTEはコネクションプーリングをデフォルトで使用していると<br>
&gt;   勝手に思いこんでいるのですが合ってますか?<br>
<br>
DBFlute.NETの方は、S2Dao.NETを経由しています。<br>
コネクションプールしてないとお話にならないと思うので、<br>
どう考えてもしていると思いますが、一瞬どこでやってたっけ?って。。。<br>
<br>
to 小谷くん<br>
Seasar.NETの中でConnectionPoolしてるんだっけかな?<br>
(JavaだとSeasar自体がConnectionPool持ってるけど)<br>
<br>
&gt; ■DBFLUTEは1リクエスト内ではコネクションは張りっぱなしと思っていますが 合ってますか?<br>
スレッドトランザクション方式になっている、その通りです。<br>
トランザクションを開始するとDataSourceの常に同じコネクションを戻します。<br>
(同じスレッド内では)<br>
<span class=""><br>
&gt; ■WEBでは基本的にリクエスト跨いだロック(For Update)はできないと思ってい ますが合ってますか?<br>
</span>そうですね。リクエスト間でトランザクションを貼りっぱなしに<br>
しないといけないので、まったくやったことはないです。<br>
<br>
&gt; ■お客から接続コストを抑えるためにコネクションをセッションに<br>
&gt; 保持して使い 回しできないの?って質問されたんですが<br>
コネクションプールしていればそんなことする必要ないですね。<br>
というか、セッションに入れたらセッション消えるまでそのコネクションが<br>
残っちゃうので、逆に枯渇しそうですね。その方式は聞いたことないです。<br>
<br>
&gt; ■DBFLUTEのコネクションプーリングの最大数などは、どこで管理しているので しょうか?<br>
これもSeasar.NETの方の話次第で。<br>
<br>
&gt; ■DBFLUTEでDBLLINKしているテーブルを更新したいのですが<br>
DBLLINKに対してシノニムを作ればできると思います。For Updateできるかと。<br>
手元のテーブルとして扱えるようになります。(こちらマニアックですが実績ありです)<br>
<br>
&gt; ■DBLINKって遅いと聞きましたが、どの辺が遅いのでしょうか?<br>
&gt;   通常のプライマリキーでのSELECTではどうなんでしょう?<br>
別インスタンスのDBに対してのSQLゲートウェイな感じなので、<br>
直接SQLを投げるよりかは遅いと思います。(経由してる分)<br>
ただ、どの程度遅いのかはパフォーマンス検証しないとわからないですが。<br>
(許容できるレベルなのかどうか。許容レベルは業務によって変わるでしょうし)<br>
<span class=""><br>
&gt; ■マスタ類とかの参照があるなら、DBLINK使うより、複数DB接続の方がいいので しょうか?<br>
&gt;  DBLINKと複数DBのメリットとデメリット(判断基準みたいなもの)ってなんで しょう?<br>
</span>直接参照できるなら直接参照の方が世話ないかと。スピードも環境構築も。<br>
DBLinkのいいところは、手元のテーブルと同じ扱いができるところに尽きます。<br>
要は、SQL的に手元のテーブルとリモートのテーブルを結合ができるというところです。<br>
複数DBではそれができません。<br>
マスタ類のデータを個別のクエリで取得するので構わないのであれば、<br>
複数DBの方がいいかなと。SQLの中で一緒に扱いたいならDBLinkですね。<br>
<br>
&gt; 以上、本当にこんな初心者的な質問、<br>
&gt; だれも頼る人がいないもので・・・<br>
そのために、オープンソースコミュニティのMLがあるんですよー!(^^<br>
<div class="HOEnZb"><div class="h5">_______________________________________________<br>
seasar-dotnet mailing list<br>
<a href="mailto:seasar-dotnet@ml.seasar.org">seasar-dotnet@ml.seasar.org</a><br>
<a href="https://ml.seasar.org/mailman/listinfo/seasar-dotnet" target="_blank">https://ml.seasar.org/mailman/listinfo/seasar-dotnet</a><br>
</div></div></blockquote></div><br></div>