0

GPSデバイスからデータパケットを取得し、処理してライブテーブルと呼ばれる1つのテーブルに保存するJava Communication Gateway(CGW)を開発しています(データベースは別のサーバーで実行されています-Java CGWから、接続プールを介してデータベース接続を呼び出し、挿入しますライブ テーブルのデータ)。

一方、Web アプリケーションも同じ Live テーブルからデータを読み取っています。したがって、Java CGW アプリケーションが起動すると、Web アプリケーションは非常に遅くなり、最初のページさえ開かなくなります。SQL Server 2005 を使用しています。

なぜそれが起こっているのか教えてください。

前もって感謝します。

4

3 に答える 3

0

データの読み取り/保存に予想よりも多くのプロセッサ時間がかかるように見えるため、問題はスレッドの優先度の問題のようです。現在のスレッドで setPriority を5未満の数値で呼び出すことにより、スレッドの優先度を下げることができます。

現在のスレッドを取得します。

Thread.currentThread().setPriority(MIN_PRIORITY);

適切に呼び出す方法を知るには、Set Priority メソッドを確認してください。お役に立てれば!

于 2012-04-22T08:32:58.653 に答える
0

DB サーバーのパフォーマンス プロファイリングを行いましたか? DBサーバーの負荷が高すぎるのかもしれません。Web アプリケーションがデータの読み取りのみを行う場合、マスター/スレーブ データベース構成は DB サーバーのワークロードの問題を解決するはずです。

于 2012-04-22T08:53:13.420 に答える
0

200 スレッドは挑戦的な数字です。

  • システム アーキテクチャの概要とは?
  • これらすべてのスレッドで消費されるメモリの量。
  • スレッド間のデータ/通信をどのように同期しますか。
  • ハードウェア構成は何ですか。
  • SqlServer を使用する必要がありますか? jdbc:odbc ブリッジは、jdbc:mysql よりも遅くなる可能性があります。

通常、マルチスレッド シナリオでは、通信のオーバーヘッドは、参加しているエージェントに関して指数関数的です。また、データの処理方法: 多くのデータに対して同じ関数を使用するか、複数のデータ型に対して複数の関数/段階を使用するか?

于 2012-04-26T22:40:57.933 に答える