[Seasar-user:2250] Re: ConnectionPoolの不使用について

J.r0ck j69
2005年 6月 24日 (金) 03:08:46 JST


ども、J.r0ckです。

まず、こういう熱い論議はとても大切なことだと思うので
マナー云々で終わらせたくないですね。
# JakartaのMLなどももっとすごい時ありますし。

あっ、それから、大前提、自分は、もうかなりいい年だし
プログラムは大好きだけどセンスが無いのを自分でも
認めてるので、若い人には勝てないし、難しい話は出来ません。

今、自分はまったくの個人で企業とお付き合いさせてもらい
仕事を出来る限り数こなすために、S2を使わせて貰っています。
# もうオジサンなので出来るだけ楽したいんです。

で、そういう立場なので、ユーザー側になるのかと思うんですが
やっぱり、成果物にS2を使う上でエンドユーザーに対しては責任とか
あるという立場で以降を綴ります。

> > > そもそも ConnectionWrapper というインタフェースは通常の利用者が
> > > 目にするものではなく,コネクションプーリングを実装するひとかたまりの
> > > コンポーネントの中で使用されるインタフェースです.
> > それは「ConnectionWrapperImpl」の説明でしかありません。
参考までに、自分的には違和感ありません。
ConnectionWrapperは、通常のConnectionにS2独自のやりたいことを
付加してるのかな、と素直に受け取れます。
単なる命名ルールの方言程度の話に思えます。まあ、その程度の話かなと...。
# 加藤さんもこれについてはリリースしたと認識していいですよね。

> > > 似たようなプロパティを増やしても分かりにくいだけなので賛成しかねます.
> > > 仮にやるなら int ではなく boolean で enablePooling とかでしょうが,
> > > そうする必要性もないと思います.
> > うーん、ぜんぜん似てません。
> 中略
> > maxPoolSizeのままだけにするのであれば、プールが空くまでwhileで待つ事自体を
> > やめて欲しいです。だってプールでしょ?maxPoolSizeを超えるようであれば、
> > プールに入れるのをやめれば良いだけだと思います。
これについては、反論です。
プールに入れるのをやめられたら、そのハンドルは誰が取るんでしょうか?
とりあえず、タイムアウトがくるまで、コネクションを取得できるまで待つのが
コネクションプールだと思います。

ちなみに、この部分のwait()がどれほどの影響を与えるかというと
自分が初めてS2を使って業務アプリを作った際、やっぱり心配になって(笑)
Apacheのabコマンドを使用してテストした結果が[以下接続テスト結果]の内容です。
# DBはOarcleでしたが、最小1セッションになってましたよ。

確かに、待ち時間は増えますが、その結果ライセンスの許す限りの範囲で
maxPoolSizeを増やせば良いだけの話では?

最大接続数はDB側の世界であって、ライセンスなども絡んでくるわけで
アプリケーションとは切り離して考えた方が良いのかと思います。

PS:
今日、加藤さんと比嘉さんのやり取りを見て、恥ずかしくなり自分の書いた
ソースを思わず見直しちゃいました。
お二人自身はすごいパワーを使わなきゃいけないのでしんどいでしょうが
このやり取りが、単に不快に感じるわけではなく、それなりに勉強になった
人がいることにもMLの意義を持ってください。


以下接続テスト結果
--------------------------------------------------------------------
maxPoolSize=10にてテストを実行

◆1クライアント
C:\Jakarta\Apache2\bin>ab -n 100  http://192.168.30.28/slipimage
This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.30.28 (be patient).....done


Server Software:        Apache/2.0.52
Server Hostname:        192.168.30.28
Server Port:            80

Document Path:          /slipimage
Document Length:        0 bytes

Concurrency Level:      1
Time taken for tests:   0.218750 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Non-2xx responses:      100
Total transferred:      24300 bytes
HTML transferred:       0 bytes
Requests per second:    457.14 [#/sec] (mean)
Time per request:       2.188 [ms] (mean)
Time per request:       2.188 [ms] (mean, across all concurrent requests)
Transfer rate:          105.14 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   2.6      0      15
Processing:     0    1   4.8      0      15
Waiting:        0    1   4.6      0      15
Total:          0    2   5.2      0      15

Percentage of the requests served within a certain time (ms)
  50%      0
  66%      0
  75%      0
  80%      0
  90%     15
  95%     15
  98%     15
  99%     15
 100%     15 (longest request)

◆60クライアント
C:\Jakarta\Apache2\bin>ab -n 100 -c 60 http://192.168.30.28/slipimage/slipInput.
do?footid=1
This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.30.28 (be patient).....done


Server Software:        Apache/2.0.52
Server Hostname:        192.168.30.28
Server Port:            80

Document Path:          /slipimage/slipInput.do?footid=1
Document Length:        5399 bytes

Concurrency Level:      60
Time taken for tests:   0.734375 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      563800 bytes
HTML transferred:       539900 bytes
Requests per second:    136.17 [#/sec] (mean)
Time per request:       440.625 [ms] (mean)
Time per request:       7.344 [ms] (mean, across all concurrent requests)
Transfer rate:          748.94 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    5   8.9      0      46
Processing:    16  265 136.1    312     453
Waiting:       15  173 110.7    171     375
Total:         31  271 136.2    312     468

Percentage of the requests served within a certain time (ms)
  50%    312
  66%    375
  75%    390
  80%    390
  90%    437
  95%    437
  98%    453
  99%    468
 100%    468 (longest request)

以上

-- 
J.r0ck <[E-MAIL ADDRESS DELETED]>




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