15

そのため、私の会社は大量のデータを foxpro データベースに保存しており、直接アクセスすることによるパフォーマンスの低下を回避しようとしています。私はActiveMQを調べ始めましたが、C# がどれだけうまく機能するかわかりません。皆さんの考えを聞きたいです。

edit : Web アプリケーションになります。この foxpro に触れるものはすべてちょっと遅いです (おそらく、10 年前にセットアップした人がすべてめちゃくちゃにしたためです。テーブル ファイルのいくつかは信じられないほど大きいです)。毎晩 foxpro を sql にレプリケートします。ほとんどのデータ読み取りは 1 日経っても問題ないので、書き込みに集中しています。さらに、書き込みはユーザーエクスペリエンス (購入) の重要な部分に影響を与えます。それを sql に保存し、可能であれば foxpro に入れるようにメッセージを送ります。残念ながら、同社は foxpro に依存する購入した非常に古いソフトウェアを削除することを望んでいません。

4

7 に答える 7

8

ActiveMQは、Spring.NET統合とNMSを使用してC#で適切に機能します。その方向にあなたを始めるためのいくつかのリンクを含む投稿はここにあります。また、MSMQ(System.Messaging名前空間)または.NETベースの非同期メッセージングソリューションの使用を検討してください。ここにいくつかのオプションがあります

于 2008-08-07T01:20:13.890 に答える
4

MSMQ (Microsoft Message Queueing) は最適な選択かもしれません。これは OS の一部であり、オプションのコンポーネント ([プログラムの追加と削除] / [Windows コンポーネント] からインストールできます) として存在します。つまり、無料です (もちろん、既に Windows の料金を支払っている限り)。MSMQ は、Win32/COM およびSystem.Messaging API を提供します。最新の Windows Communication Foundation (別名 Indigo)キュー チャネルも MSMQ を使用します。MSMQ は、Windows の Home SKU (XP Home および Vista Home) ではサポートされていないことに注意してください。

于 2008-09-19T07:03:04.037 に答える
1

ActiveMQオープンソースプロジェクトは、 NMSと呼ばれるメッセージング用のC#APIを定義していることを言及する価値があります。これにより、単一のC#/ .Net APIに対して開発でき、次のようなさまざまなメッセージングバックエンドを使用できます。

于 2008-09-16T14:12:53.747 に答える
1

MSMQ を参照してください。.NET と VFP で使用できますが、それらを使用するには書き直す必要があります。VFP から MSMQ を使用する方法を説明する記事を次に示します。https://docs.microsoft.com/en-us/previous-versions/visualstudio/foxpro/ms917361(v=msdn.10)

于 2008-10-14T14:23:37.363 に答える
0

これがあなたが求めているものではない場合は申し訳ありません...winsockを使用してc/c ++で非同期ソケットを使用するときに「バケットシステム」のように機能する舞台裏のある種のキャッシュを検討しましたか?基本的には、リクエストを受け入れることで機能し、すぐに応答をWebアプリに送り返します。最終的にレコードが見つかると、AJAXまたはその他の選択したテクノロジーを介してアプリで更新されます。私はC#プログラマーではないため、具体的な例を示すことはできません。お役に立てれば!

于 2008-08-07T02:17:35.523 に答える
0

Foxアプリは.CDXインデックスを使用しますか?その場合、プログラムコードを変更せずにインデックスを追加することで、パフォーマンスを向上させることができる場合があります。ただし、.IDXインデックスを使用する場合は、実際のアプリで変更を行う必要があります。

于 2008-08-22T17:30:58.737 に答える
0

問題は書き込みにあるので、テーブルの不要なインデックスを>削除<することにもっと目を向けます。RDBMS ではよくあることですが、FoxPro テーブルのすべてのインデックスは、インデックスを更新する必要があるため、書き込み操作を遅くします。また、テーブルから直接読み取っていない (またはおそらく直接クエリを実行していない) ため、非常に多くのインデックスは必要ありません。 . また、書き込み操作の速度が低下している可能性があるため、テーブルのトリガーまたはフィールド ルールを確認することもできます。ただし、参照整合性が維持されていることを確認してください。

于 2008-09-17T23:40:26.043 に答える