[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 メーリングリストの案内