|
文件: |
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) |