- PR -

接続プーリングについて

1
投稿者投稿内容
BIGBIRD
会議室デビュー日: 2003/12/10
投稿数: 2
投稿日時: 2004-01-13 20:01
こんにちは。
現在2階層のC/S形式でシステムを構築中です。
(クライアントから直接DBサーバーにアクセスする形式です)
その際、DB接続のプーリング機能を利用し、I/Oパフォーマンスを
維持したいいと考えています。
3階層であれば、中間層のアプリケーションサーバー上でWebShere等が
プーリング機能を持っている為、可能ですが、
今回みたく2階層の場合はどのように実現するのでしょう?
DB(今回はUDB V7.2とORACLE 9I)のその機能が
あるのでしょうか?
hatoku
会議室デビュー日: 2004/01/13
投稿数: 1
投稿日時: 2004-01-13 21:30
C/S2階層なら、プーリングは不要と思います。
クライアントの起動時にDBに接続して、その接続を
クライアントの終了まで維持しておけばよいのでは?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-01-14 08:29
引用:

BIGBIRDさんの書き込み (2004-01-13 20:01) より:

DB(今回はUDB V7.2とORACLE 9I)のその機能が
あるのでしょうか?


 DBの機能というより、DB接続に用いるデータプロバイダの機能になります。何をお使いの予定でしょうか。.NET Framework1.1に標準でついている、「OLE DB Provider」、「.NET Data Provider for Oracle」にはプーリング機能があります。Oracleより提供されている「Oracle Data Provider for .NET」にもプーリング機能がありますが、バグがあるとの報告があります(最新版では直っているかもしれません)。
BIGBIRD
会議室デビュー日: 2003/12/10
投稿数: 2
投稿日時: 2004-01-14 09:29
説明不足でした。

今回はNET Framework1.1を使用する予定です。(但し、既存のアプリケーション稼動環境がVB6が前提なので、NET Framework1.1を導入する事で、既存環境に影響があるのであれば、VB6に変えるかもしれません)
少し話は変わりますが、
NET Framework1.1とVB6のアプリ稼動環境は共存可能なのでしょうか? MicrosoftのHPを見ても明確な記述はなく、以下のQ&Aがある程度です
これは開発環境であり、アプリ稼動環境と解釈していいのかが不明です。
-------------------------------------------------------------------------------
Q. Visual Basic .NET 2002、Visual Basic .NET 2003、および Visual Basic 6.0
のすべてを同じコンピュータにインストールすることはできますか。

 A. はい。システム要件が満たされると、Visual Basic 6.0 を実行しているコン
ピュータに Visual Basic .NET 2002および Visual Basic .NET 2003 をイン
ストールして、3 つすべてを使用できます。どのような順番でインストー
ルしてもかまいません。これはサポート対象でもあります。Visual Basic 6.0、
Visual Basic .NET 2002、およびVisual Basic .NET 2003 で作成されたデザイ 
   ンタイム環境およびアプリケーションの両方が、同じコンピュータ上で並行して
   シームレスに実行されます。

  Q. Visual Basic 6.0 および Visual Basic .NET 2003 を同じコンピュータ上で
   使用できますか。

  A. はい。システム要件が満たされると、Visual Basic 6.0 を実行しているコン
    ピュータに Visual Basic .NET 2003
 をインストールして、両方を使用できます。Visual Basic 6.0、および Visual
    Basic .NET 2003 で作成されたデザ
   インタイム環境およびアプリケーションの両方が、同じコンピュータ上で並行
    してシームレスに実行されます。
------------------------------------------------------------------------------
で、話は元に戻りますが、今回対象とするシステムはユーザー端末が数1000台レベルであり、hatokuさんのいう常時接続では耐えられないと考えています。
また、JittaさんのNET Framework1.1の持っているプーリング機能は各クライアント側でプーリングする機能でしょうか?

きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-01-14 11:26
BIGBIRDさん、こんにちは。

引用:

これは開発環境であり、アプリ稼動環境と解釈していいのかが不明です。


との事ですが、

引用:

Visual Basic 6.0、Visual Basic .NET 2002、およびVisual Basic .NET 2003 で作成されたデザインタイム環境およびアプリケーションの両方が、同じコンピュータ上で並行してシームレスに実行されます。


とありますので、OKでしょう。当方の環境でも、問題は発生していません。
もちろん、どんな場合でも検証は必要でしょうけど。
#「シームレスに実行」というのが、どういう意味で使われているのかは良く判りませんが...。

引用:

で、話は元に戻りますが、今回対象とするシステムはユーザー端末が数1000台レベルであり、hatokuさんのいう常時接続では耐えられないと考えています。
また、JittaさんのNET Framework1.1の持っているプーリング機能は各クライアント側でプーリングする機能でしょうか?


2階層のシステム(クライアント - DB)なんですよね?
プーリングするのは、Jittaさんの投稿にもあるとおりデータプロバイダの機能ですから、もちろん各クライアントになります。
.Net Framework のデータプロバイダでは、明示的にプーリングを無効にしなければ、有効期間内でセッションは維持されますので、「常時接続では耐えられない」システムなのであれば無効にする必要があります。

【追記】
必要がある、というか、無効にして、必要に応じて接続するようにすれば「耐えられるかも知れない」です。その場合、どの程度パフォーマンスに差が出るのかは、検証してみないと何とも言えませんが...。
取り敢えず接続プールの概要については「.NET Framework 開発者ガイド」-「ADO.NET でのデータ ソースへの接続」を参照してみて下さい。


[ メッセージ編集済み 編集者: きくちゃん 編集日時 2004-01-14 11:54 ]
1

スキルアップ/キャリアアップ(JOB@IT)