質問

そのため、私の会社では Foxpro データベースに大量のデータを保存しており、これを直接操作することによるパフォーマンスへの影響を回避するために、よりきびきびとしたユーザー エクスペリエンスのために非同期で実行できるものはすべてメッセージ送信することを考えていました。見始めました アクティブMQ ただし、C# がどの程度うまく機能するかはわかりません。皆さんの意見を聞きたいです。

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

役に立ちましたか?

解決

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

他のヒント

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

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

MSMQ を確認してみるとよいでしょう。.NETやVFPでも使用できますが、使用するには書き換える必要があります。VFP から MSMQ を使用する方法を説明する記事は次のとおりです。 http://msdn.microsoft.com/en-us/library/ms917361.aspx

ご要望と違っていたらごめんなさい…Winsock を使用して C/C++ で非同期ソケットを使用するときに、「バケット システム」に少し似た動作をする、舞台裏で何らかのキャッシュを検討したことがありますか?基本的に、これはリクエストを受け入れることによって機能し、Web アプリに即時に応答を返します。最終的にレコードが見つかると、AJAX またはその他の選択したテクノロジーを介してアプリ上でレコードを更新します。私は C# プログラマーではないので、具体的な例を提供することはできません。お役に立てれば!

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top