消息队列在VB.NET数据库开发中的应用

2016-01-29 12:04 76 1 收藏

消息队列在VB.NET数据库开发中的应用,消息队列在VB.NET数据库开发中的应用

【 tulaoshi.com - vb 】

  · "公共队列"在整个可传递消息的"消息队列"网络中复制并传输,并且有可能由网络连接的所有站点访问。

  · "专用队列"不在整个网络中发布。相反,它们仅在所驻留的本地计算机上可用。专用队列只能由知道队列的完整路径名或标签的应用程序访问。

  · "管理队列"包含确认在给定"消息队列"网络中发送的消息回执的消息。指定希望 MessageQueue 组件使用的管理队列

  · "响应队列"包含目标应用程序接收到消息时返回给发送应用程序的响应消息。指定希望 MessageQueue 组件使用的响应队列。

  系统队列分为:

  · "日记队列"可选地存储发送消息的副本和从队列中移除的消息副本。

  · "死信队列"存储无法传递或已过期的消息的副本。

  · "专用系统队列"是一系列存储系统执行消息处理操作所需的管理和通知消息的专用队列。

  现在大家对消息队列有了简单的了解后,就该进入主题了。要使用msmq进行软件开发需要安装msmq。安装完后就该进入实际的开发阶段。先打开vs.net ide中的"服务起资源管理器"展开你想建立消息队列的计算机名,再展开"消息队列"右击它在弹出菜单中选择"新建"建立一个新的消息队列,并为它指定一个名字,这个名字可以随意。也可以通过编程来完成,代码如下:

system.Messaging.MessageQueue.Create(".Private$MyPrivateQueue")建立专用队列
System.Messaging.MessageQueue.Create("myMachineMyQueue")建立公共队列

  其实我认为使用那中方法并不重要,重要的是搞清楚专用队列和公共队列的差别(其他队列不是必须的)。在本例中是通过"服务器资源管理器"分别在服务器上建立了专用队列和公共队列。

  程序功能:本程序分为两部分包括服务器程序(安装在sql server服务器上)和客户端程序,客户端的作用是用来编写t-sql语句并将t-sql语句放在消息中,并将消息发送到sql server服务器上的消息队列中去。服务器程序检查指定的消息队列当发现有新消息到达时,就开始执行消息中的内容,由于消息中的内容是t-sql语句所以服务器端实际上是执行对数据库的操作。

  客户端程序:

public Sub client()
Dim tM As New System.Messaging.MessageQueue()
tM.Path = ".Private$jk" "FORMATNAME:PUBLIC=3d3dc813-c555-4fd3-8ce0-79d5b45e0d75"与指定计算机中的消息队列建立连接,
Dim newMessage As New System.Messaging.Message(TextBox1.Text)接受文本筐的t-sql语句
newMessage.Label = "This is the label"消息名字,
tM.Send(newMessage)发送消息
End Sub

  服务端程序:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/vb/)public Sub server()
Dim NewQueue As New System.Messaging.MessageQueue(".Private$jk")"FORMATNAME:PUBLIC=3d3dc813-c555-4fd3-8ce0-79d5b45e0d75"与指定计算机中的消息队列建立连接,
Dim m As System.Messaging.Message
查看消息队列中的消息
m = NewQueue.Receive
m.Formatter = New System.Messaging.XmlMessageFormatter(New String() {"System.String,mscorlib"})
Dim st As String
st = m.Body消息队列中消息的消息内容。既sql语句
Dim con As New OleDb.OleDbConnection("输入自己的数据库连接字符串")
con.Open()
Dim com As New OleDb.OleDbCommand(st, con)执行消息中的sql语句
com.ExecuteNonQuery()
con.Close()
End Sub

  我为什么要使用消息队列来处理数据库的操作这个问题我一直没回答,现在我就来回答这个问题。在本程序中你会发现在sub client()中我并没连接数据库和请求数据,而是通过发消息来操作数据库的,这个好处是节省了两部分时间:

  1、对数据库连解请求数据的时间。

  2、从数据库返回数据的时间。

  在很多情况下其实我们并不需要看见具体的数据就知道该怎么修改数据库中的数据。例如要删除张三的记录,就可以将一条简单的删除语句放入消息中,发给服务器让服务器程序去处理对数据的更改。

  此外消息队列的另一个主要用途也就是当前erp软件中必不可少的,就是在断开连接时保存信息,当连接恢复时发送消息。消息在如下两种情况中无法迅速地传递到它们的队列:当队列驻留的计算机无法工作时,或当路由消息所需的域控制器无法工作时。"消息队列"可让您应对这些情况,使得在从网络上断开连接或必要的计算机或

来源:http://www.tulaoshi.com/n/20160129/1484519.html

延伸阅读
标签: vb
概述:这篇文章为计划将他们的应用程序更新到Visual Basic.NET的微软Visual Basic 开发用户提供一些关于XML的建议。主要包括Visual Basic 6和Visual Basic.NET对XML操作的不同之处,以及Visual Basic.NET关于这方面新增工具的应用。 概述:这篇文章为计划将他们的应用程序更新到Visual Basic.NET的微软Visual Basic 开发用户提供一些关于...
用VisualBasic5.0作为数据库开发平台 3.0版以后的VisualBasic具有数据库连接和数据处理功能,因此完全有资格作为数据库应用程序的开发环境。Microsoft公司把许多新的数据访问功能加到VisualBasic中,使得该产品成为桌面数据库市场中Access、FoxPto及ParadoxforWindows的直接竞争者。与普通的数据库系统相比,用VisualBasic作为数据库开发平...
随着 Microsoft 的 .NET 框架的逐渐流行,许多开发人员迫切想了解关于将 .NET 应用程序与 Oracle 集成的最好的方式的信息 不仅在基本的连通性方面,还包括与使用 Visual Studio.NET (VS.NET) 进行有效的应用程序开发的关系。 在本文中,我将说明构建使用 Oracle 数据库的 .NET 应用程序所涉及到的基本但不可或缺的过程,包括: 如何...
这是在VB.net中为连接MySql中编写的一个类库。你可以使用这个类库直接操作MySql数据库。 在使用这个类库之前,你必须安装 ODBC MYSQL 3.51下载地址:http://www.mysql.com/downloads/api-myodbc-3.51.html Driver ODBC.NET下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyId=6CCD8427-1017-4F33-A062-D1...
VB作为快速开发Windows下的编程工具,已经为越来越多的开发者采用。但如果要开发出专业的Windows软件,还需采用大量的API函数,以下结合笔者开发管理软件的经验谈几点体会。 程序中判定Windows的版本 众所周知,Windows3.x各版本或多或少会有些差别,为了使开发程序避免出现莫名其妙的错误,最好在程序运行前自动判定Windows的版本。采...

经验教程

323

收藏

82
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部