0

こんにちは、誰かが光を当てるか、少なくとも PowerBuilder 9 アプリケーションが SQL サーバー データベースで数百のデータベース接続を開く理由を理解する方向に私を向けることができます。

バックグラウンド

私たちの組織は最近、SQL Server 2008 R2 データベース上にある PowerBuilder 9 を使用してメイン アプリケーションを構築する別の会社を買収しました。このアプリケーションのユーザーは、ドメイン資格情報を使用してデータベースにログインしており、約 15 ~ 20 人のアクティブ ユーザーがいます。任意の時点で、これらの 15 ~ 20 人のユーザーが、SQL Server データベースで実行されている数百の接続/プロセスを持つことができることを確認しました。

たとえば、昨日、これらのユーザーからデータベースへの接続が約 530 +/- ありました。sys.sysprocesses テーブルに対してクエリを実行すると、すべての接続のステータスが「スリープ中」であり、cmd 値が「AWAITING COMMAND」であることがわかります。

これが開発者が接続を正しく開いたり閉じたりしなかったことが原因なのか、それとも PowerBuilder 9 アプリケーションの正常な動作なのかはわかりません。

どんな情報も役に立ち、感謝しています。前もって感謝します。

4

1 に答える 1

0

あなたは、PowerBuilder が非常にばかげたことをネイティブに行うことを示唆する回答を得たいと考えているようです。申し訳ありませんが、この場合は取得できないと思います。他のツールと同様に、PowerBuilder アプリケーションで多くのことを実行できます。PowerBuilder の性質とインフラストラクチャによって導かれるアーキテクチャがあるとすれば、それはシングル スレッド、シングル接続アプリケーションです。

アプリケーションをマルチスレッド化し、各スレッドから接続することもできます (スレッドは接続を共有できません) が、これに関するドキュメントは強力ではなく、方法もわかりにくいため、そうはなりません。

アプリケーションをデータベースに 1000 回接続させることもできますが、それは、組み込みの単一のグローバル接続オブジェクトを超えて、1000 の新しい接続をインスタンス化することを意味します。これは、マルチスレッドよりも実行方法が少し明白ですが、なぜ誰かがこれをプログラムするのかを尋ねなければなりませんか?

別の考えとして、このアプリが 2003 年頃 (PB9 のリリース) から存在しているのであれば、なぜ今になって登場するのでしょうか? 1 つの提案は、数年後に出てきた DBMS エンジンとのマッチングではないでしょうか? PowerBuilder の新しいバージョンの DBMS エンジンを使用して成功した人を何人か知っていますが、PB9 の開発時には予測できなかった、互換性のないものに出くわしたことも十分に考えられます。

あなたの次のステップが、何が起こっているのかを理解しようとする多くのトレースではなかったとしたら、私は驚かれることでしょう. SQL Server には優れたトレース ツールがあります。PowerBuilder には、データベース接続をトレースする独自の機能があり、それほど洗練されていませんが、PowerBuilder が DBMS クライアント ソフトウェアに対して「壁を越えて」何を返しているかをかなり正確に説明しています。

幸運を、

テリー。

于 2012-05-02T04:11:30.217 に答える