2008-08-07 86 views
8

因此,我的公司在foxpro數據庫中存儲了大量數據,並嘗試解決直接觸摸它的性能問題。我想通過消息傳遞任何可以異步完成以獲得更快速用戶體驗的消息。我開始尋找ActiveMQ,但不知道C#會如何與它掛鉤。想聽聽你們所有人的想法。如何使用C#進行消息傳遞#

編輯:這將是一個Web應用程序。任何接觸這個foxpro的東西都會有點慢(可能是因爲10年前設置它的人把它搞糟了,一些表格文件非常大)。我們在晚上覆制foxpro到sql,大部分數據讀取都可以,因此我們專注於寫入。加上寫入會影響用戶體驗的關鍵部分(購買),我們將它存儲在sql中,然後只要消息將它放入foxpro中即可。我希望我們能夠擺脫foxpro,但不幸的是,該公司不希望擺脫他們購買的依賴於它的很老的軟件。

回答

6

ActiveMQ使用Spring.NET集成和NMS與C#協同工作。有一些鏈接讓你開始在那個方向is here。還考慮使用MSMQ(System.Messaging命名空間)或基於.NET的異步消息解決方案,並使用some options here

+1

此博客已無法使用 – 2013-12-30 09:48:48

0

對不起,如果這不是你要求的... 當你使用winsock在c/C++中使用異步套接字時,你是否考慮過某種類似於「桶系統」的緩存?基本上,它的工作原理是接受請求,並將即時響應發送回Web應用程序,當它終於找到您的記錄時,它會通過AJAX或您選擇的任何其他技術在應用程序上更新它。由於我不是C#程序員,因此無法提供任何具體示例。希望這可以幫助!

0

Fox應用程序是否使用.CDX索引?如果是這樣,您可以通過添加索引而無需更改任何程序代碼來提高性能。但如果它使用.IDX索引,則必須在實際應用程序中完成更改。

0

由於問題與寫入有關,我會更加註意>刪除<表中的任何不需要的索引。在RDBMS中很常見,因爲索引需要更新,所以FoxPro表上的每個索引都會減慢寫入操作,並且由於您不是直接從表中讀取(或者可能直接查詢)表,所以不應該需要很多索引。您可能還想查看錶上的任何觸發器或字段規則,因爲它們可能會減慢寫入操作。請確保您的參考完整性仍然保留,但..

4

MSMQ(Microsoft消息隊列)可能是一個不錯的選擇。它是操作系統的一部分,作爲可選組件提供(可以通過添加/刪除程序/ Windows組件安裝),這意味着它是免費的(當然,只要您已經爲Windows付費)。 MSMQ提供Win32/COM和System.Messaging API。更現代的Windows Communication Foundation(又名Indigo)queued channels也使用MSMQ。 請注意,Windows首頁SKU不支持MSMQ(XP Home和Vista Home)

相關問題