[Seasar-user:1492] Re: 【質問】 高負荷時のDBコネクションエラーについて

yamagoo yamagoo
2005年 2月 15日 (火) 20:13:17 JST


やまぐちです。

レスありがとうございます。

Oracleを扱うのが初めてということもあり的はずれな点が多々あると
思いますがご容赦ください。

> > [ESSR0071]SQLException occured, because java.sql.SQLException: 
> > Io exception: Socket closed
> これは、オラクルが出してるエラー(IOException)が原因で起きてます。
> S2, S2Daoは無関係だと思われます。

原因はOracle側でしたか、
てっきりコネクションの取得の際のエラーかなと勘違いしてました
失礼しました・・・心より恥じる

> プールは効きますよ。
> ログが出ると思うので、論理コネクションと物理コネクションの取得
> のログを見れば、プーリングの様子が確認できます。
> 論理コネクションは、プールからの取得、物理コネクションは、
> オラクルから取得することになります。

ログをみますと
servletをたたくたびに物理コネクションから取得して
トランザクションが開始されその中では論理コネクションの出し入れがあり
コミット後に物理コネクションが閉じられているので、
毎回Oracleに戻っちゃっている気がしたのですが・・・

Oracle側も共有サーバモードにしてプール設定にしているので
一応プールはされているような気がします。

s2のコネクションプール設定のmaxPoolSizeを10にしておくと
オラクル側のv$sessionをアプリケーションの接続ユーザでカウントしたら
10になるというものではないんですね。

> こっちは経験ないですが、RDBMSをHSQLDBに変えるとどうなりますか。
> S2Daoが原因なのかRDBMSが原因なのかを調べる必要があると思います。
> 後、S2JDBCを使って同じことをするとどうなるでしょうか。

そうですね。HSQLDBとS2JDBC版を作って調査することにします。

> 高負荷をかけているやり方もたぶん問題ないとは思いますが、
> 確認したいポイントですね。

アクセスがあるとカウントアップする仕様のservletを
直接ブラウザで開いてリロードしています。

以上です。よろしくお願いします。







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