2012-05-01 10 views
0

午後、PowerBuilder 9アプリケーションがSQL Serverデータベースで100のデータベース接続を開く原因を突き止めるために、 。PowerBuilder 9ユーザーごとに100のSQLプロセスが表示される

背景

私たちの組織は、最近、その主なアプリケーションのSQL Server 2008 R2データベースの上に座ってのPowerBuilder 9を使用して構築されている別の会社を買収しました。このアプリケーションのユーザーは、ドメイン資格情報を使用してデータベースにログインしており、約15〜20人のアクティブユーザーです。私たちは、15〜20人のユーザーがSQL Serverデータベースで実行中の接続/プロセスを100にすることが可能であることを見てきました。

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

これは、開発者が正しく接続を開いたり閉じたりしなかったためか、PowerBuilder 9アプリケーションでは正常であるかどうかはわかりません。

いずれの情報も参考になります。前もって感謝します。

+0

そのレンガを解読して読みやすくすることを強くお勧めします... – JNK

+0

テキストを編集しました。ご提案ありがとうございました – mreyeros

+0

アプリケーションをより新しいバージョンのPowerBuilderに移行することは可能でしょうか?あなたが経験している問題は、すでに最新のバージョンで対処されている可能性があります。 – Bernard

答えて

0

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

アプリケーションをマルチスレッド化し、各スレッドから接続します(スレッドは接続を共有できません) 。

アプリケーションをデータベースに1000回接続できますが、これはビルトインの単一グローバル接続オブジェクトを超え、1000個の新しい接続をインスタンス化することを意味します。これはマルチスレッドよりもはるかにはっきりしていますが、誰かがこれをプログラムする理由を尋ねる必要があります。

別の考えがあります:このアプリケーションが2003年頃(PB9のリリース)以来存在していたのなら、これはちょうど今起きているのですか? 1つの提案は、おそらく、それは何年後に出てきたDBMSエンジンとのマッチングでしょうか?私はPowerBuilderのバージョンを後のDBMSエンジンでうまく使用している人たちを知っていましたが、互換性のないもの、つまりPB9の開発時には予測できないものを見つけたことはかなり考えられます。

あなたの次のステップが何が起こっているのか把握しようとすると、私は驚くでしょう。 SQL Serverには優れたトレースツールがあります。 PowerBuilderは独自のability to trace database connectionsを持っていますが、エレガントではありませんが、PowerBuilderがDBMSクライアントソフトウェアに「壁を越えて」何を説明しているかはかなり正確です。

幸運、

テリー。

+0

"PowerBuilderがネイティブに何か非常にばかげたことをするような答えを得たいと思われる" 私の質問はこの意図では決して尋ねられませんでした。これまでにPowerBuilderに晒されたことのない人物として、開発環境を経験豊富な人が私に正しい方向を向けることができるように、ここで質問をすることが私の意図でした。 – mreyeros

+0

これが今起きている理由は、述べたように、このアプリケーションは会社買収後に継承されているからです。これは小さな「ママとポップ」環境で、唯一の懸念が働くようになった孤独な開発者がいました。アプリケーションがどのようにデータベースに影響を与えているかに注意は払われませんでした。開発者に質問をした後、彼は自分が接続を確認したことが一度もなかったので、決して対応していなかったということでした。 – mreyeros

関連する問題