通过messageQueue传递消息操作,多个客户端消息方案.

一个win项目中用到了Sqlite数据库,由于Sqlite不能同时修改数据库,在修改数据库时,也不能读取数据,写写并发冲突\写读并发异常\读读并发可以.所以在sqlite外部封装了一个数据操作层,其他程序通过messageQueue读写数据库.

 

对于数据使用者来说,发送数据请求,获取数据中心返回的消息.假如使用消息的程序有多个,或单个程序的启动了多个.

 

1)消息队列是先进先出的,必须先把第一个消息取出才能取第二个消息.mq.Receive取到的信息是最旧的信息.

 

2)System.Messaging.Message msg = mq.Receive();mq的队列为空时才阻塞.

while(true)

{

     System.Messaging.Message msg = mq.Receive();

}

将一直运行下去,直到系统内存溢出.

 

2)message Queue的message的成员属性必须是强类型;消息中有dadatable时必须设置dadatable的name值.否则无法xml序列化.

 

3)多个进程同时监控一个队列时,异步接受消息各个进程都会触发吗?

 

MessageQueue的一个队列类似一个Socket的监听端口,多个需要返回值的应用程序可以通过建立多个队列来区分消息,区分发送消息队列和返回消息队列,但是项目是一个服务器端的管理程序,操作客户端是可以通过mstsc同时启动多个的.

 

 

方案,每个客户端都建立队列,通过配置文件循环,同时要保准一个桌面只能启动一个程序.

 

 

 

posted on 2008-08-21 23:34 igaofen 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/igaofen/archive/2008/08/21/1273579.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值