Chinaunix首页 | 论坛 | 博客
  • 博客访问: 209921
  • 博文数量: 21
  • 博客积分: 1546
  • 博客等级: 上尉
  • 技术积分: 290
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-10 14:54
文章分类

全部博文(21)

文章存档

2020年(1)

2019年(3)

2015年(2)

2014年(1)

2011年(1)

2009年(7)

2008年(4)

2007年(2)

我的朋友

分类: Mysql/postgreSQL

2009-06-15 16:57:58

文件: psqlodbc8341.zip
大小: 3173KB
下载: 下载
 
 LISTEN/NOTIFY的功能说明请参考POSTGRESQL()文档。
 
在C/S结构中,工作模式一般为客户端请求,服务端响应。postgresql的listen/notify打破了这个常规,某个客户端可以用notify命令,通过服务器发送到其他正在listen的客户端。这将极大的改善了应用的性能。比如,某个客户端修改了数据,他想让所有的客户端立刻知道。常规的处理方法是,所有客户端定时从服务器刷新数据,不及时又浪费资源。而用listen/notify可以很好的解决这问题。
 
不幸的是,这功能在实际应用中无法得到应用。因为它不仅需要接口的支持,而且客户端必须有监听机制,用高级程序很难设计出这种监听机制的单线程程序。所以在官方的ODBC中,对服务器传来的NOTIFY信息是以丢弃处理。
 
然而,大部分高级程序都有处理windows消息的功能,把notify信息转化为windows消息,是在ODBC中封装的灵感。
 
封装的原理:在ODBC的空闲状态,打开网络异步select功能,当有网络包到达,触发windows消息。应用程序处理windows消息,主动向ODBC获取notify信息。在ODBC的工作状态,关闭网络异步select功能。

 

阅读(2519) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~