出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

ADOによるコネクションプーリング   Raioさん [2003/06/26 17:13:17] [3451]
  Re:ADOによるコネクションプーリング   nowheremanさん [2003/06/27 8:56:51] [3452]
    Re:ADOによるコネクションプーリング   暇人さん [2003/06/27 9:51:50] [3453]
      Re:ADOによるコネクションプーリング   Raioさん [2003/06/27 10:31:22] [3454]

[3451] ADOによるコネクションプーリング
投稿者:Raioさん 2003/06/26 17:13:17
はじめましてRaioと申します。

現在、ASPによる開発があり、悩んでいます。

普通というか常識を教えてほしいのですが

やりたい処理は下記のような簡単な処理です。

1.データベースに接続
2.データを取得
3.画面に表示
4.データベース切断

これだけなのですがデータベースには毎回接続するのが
あたりまえなのでしょうか?

1度接続したらSessionなどにプーリングしておくのが
良いのでしょうか?
それだといつ切断するのでしょう?

的外れな発言でしたらすいませんが
みなさんのご意見を聞かせていただけないでしょうか?

よろしくお願い致します。

[3452] Re:ADOによるコネクションプーリング
投稿者:nowheremanさん 2003/06/27 8:56:51
> これだけなのですがデータベースには毎回接続するのが
> あたりまえなのでしょうか?

私も設計段階の時、同様の事で悩んだ経験がありますが、
Web上のアプリケーションである事を前提として、
色々事象を考えた上で、ソース毎に接続→切断する方法を取りました。
もちろん、処理やセッション毎だけではなく、
その他にも様々な手段があると考えられます。

VC++等でDBのプログラムをした時は、
接続はアプリ起動時のみとして、
DB処理スレッドを起こしてイベント処理した事もあります。
でもこれも処理毎に接続→切断とする手段も考えられるので
どれが最良かはシステムによって異なるのでは無いでしょうか?

それぞれの特徴を把握した上で、
動作環境などの条件を前提にして、
システム仕様や設計等でよく検討して
最良な手段を取るべきだと私は考えています。

> 1度接続したらSessionなどにプーリングしておくのが
> 良いのでしょうか?
> それだといつ切断するのでしょう?

Session_OnStartの時に、接続しておいて
Session_OnEndの時に切断する方法が考えられます。

Set Session("objDb") = Server.CreateObject("ADODB.Connection")
Session("objDb").Open(…)

とでもするんでしょうね。
でもやった事は無いので、どうなるのかは知りませんw

[3453] Re:ADOによるコネクションプーリング
投稿者:暇人さん 2003/06/27 9:51:50
> VC++等でDBのプログラムをした時は、
> 接続はアプリ起動時のみとして、
> DB処理スレッドを起こしてイベント処理した事もあります。
> でもこれも処理毎に接続→切断とする手段も考えられるので
> どれが最良かはシステムによって異なるのでは無いでしょうか?
>
> それぞれの特徴を把握した上で、
> 動作環境などの条件を前提にして、
> システム仕様や設計等でよく検討して
> 最良な手段を取るべきだと私は考えています。

私もそう思います

> > 1度接続したらSessionなどにプーリングしておくのが
> > 良いのでしょうか?
> > それだといつ切断するのでしょう?
Sessionはクライアントの設定によってはまったく使えません。
Webサーバーを複数たててロードバランスを取っている時もサーバー毎にSessionが立ってしまい無理です。
また、Sessionにオブジェクト変数を設定する事は可能ですが
やらない方がよいとMicrosoftは勧告しています

一々接続、切断を繰り返すのが安全です
たとえば、接続の悪いページに飛んでしまい。めんどくさくなって無理やり切った覚えはないですか?
ASPのコネクションはIISの設定で時間によって自動で切れますが。切れるまでの間コネクションが残ってしまいます。IISサーバーDBサーバーに過負荷をかける原因になります。

不特定多数を顧客として考えると。嫌がらせする人の事も考えねばならず、つなげる→切るを繰り返すだけでサーバーダウンしてしまいます。

[3454] Re:ADOによるコネクションプーリング
投稿者:Raioさん 2003/06/27 10:31:22
ご回答ありがとうございます。

> それぞれの特徴を把握した上で、
> 動作環境などの条件を前提にして、
> システム仕様や設計等でよく検討して
> 最良な手段を取るべきだと私は考えています。

これをもう一度検討してみたいと思います。

本当に助かりました
ありがとうございました。



TreeBBS For ASP V.0.1.3
Program By YasNet