dポイントプレゼントキャンペーン実施中!

VB6.0アプリからOracleデータベースにアクセスして
データの取得・更新を行うシステムを構築しています。
(2層C/Sシステムっていうんでしょうか?)

今、このシステムにおけるデータの取得・更新を
起動~終了の1セッション内で行っています。
将来的にユーザ数が増え、セッション数が増加すると
このような1セッションの作りではパフォーマンスが低下してしまうということを聞きました。
そこで、必要な時だけセッションを張り、
必要の無い時はセッションを切った状態にすることが要望されていますが
これを行うとセッションを張る時のオーバーヘッドがかかって遅くなります。

そこで、CreateDatabasePoolメソッドをGetDatabaseFromPoolメソッドや用いて、
セッションの瞬時復帰を行い、上記のオーバーヘッドをなくすことを思いついたのですが、
調べると私の構築しているようなシステムではできないようなのです。
Webアプリならできるようですが。。

私の構築しているようなシステムにおいて
セッション即時復帰の方法、
または、CreateDatabasePool、GetDatabaseFromPoolの使用法
をご教授ください。

宜しくお願いします。
言葉足らずな説明ご容赦ください。

A 回答 (2件)

バージョンとエディションの表記がされてないので回答に困るのですが、



コネクションマネージャを使用する方法があります。

ユーザプロセス - コネクションマネージャ - リスナ
の3層構成になり、コネクションプール、セッションの多重化がサポートされているようです。
(エンタープライズ版の機能です。)

但し、ゾンビセッションのロックで苦労したという噂話を聞いているので使用したことはありません。

ちなみ、Unix系の専用サーバはプロセスモデルですので、接続操作にはかなりコストがかかります。
スレッドモデルのWindowsでは、およそ 10 ~20 接続であれば MTS にしなくても大丈夫だと思います。
(使用環境により異なりますので DBAと相談されてください)

あとアプリケーションレベルで実装されるのは避けたほうがよいと思います。
    • good
    • 0
この回答へのお礼

遅くなって申し訳ありません。
回答ありがとうございます。

Oracleのバージョンは9.2です。
書き忘れました。すみません。

コネクションマネージャですか~
そういうツールがあるんですね。なるほど。

前の質問者の方のアドバイスと合わせ
DBAと相談してみます。

お礼日時:2005/06/07 23:31

セッション数が負担になるようならば、共有サーバ接続を行うようにすれば、


セッションの増加による不可は軽減できます。

また、セッション開設時のオーバーヘッドですが、認証の問題さえ何とかすれば
さほど長い時間がかかることはないと思います。
(windowsサーバで設定が良くないと、時間がかかるけど、設定さえ見直せば、
コンマ数秒でセッション開設も不可能ではありません。)
    • good
    • 0
この回答へのお礼

遅くなって申し訳ありません。
回答ありがとうございます。

サーバ側設定でオーバヘッド回避ですねぇ。
なるほど、なるほど。試してみます。

ちょっとまだ忙しくて試せてません。。。泣

お礼日時:2005/06/07 23:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!