2008-08-07 50 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)

相关问题