如何:向断开连接的队列发送消息
更新:2007 年 11 月
消息在如下两种情况下无法迅速地传递到它们的队列:当队列驻留的计算机无法工作时,或当路由消息所需的域控制器无法工作时。通过“消息队列”,可以应对这些情况,以便在从网络上断开连接或者必要的计算机或控制器无法工作时,仍可以继续发送消息。在这些情形下,消息临时存储在本地计算机或传递路由上的某个计算机的队列中,直到完成传递所需的资源重新联机。
例如,假设有一个记录所有在出差的销售人员发送的订单的中央队列。这些销售人员每天的大部分时间都以断开连接的方式工作,记录来自客户站点的订单信息,并且每天拨号连接一次,将所有这些信息传输到中央队列中。因为消息在发送方断开连接时仍可发送到队列,所以销售人员可以在记录客户信息时立即发送他们的消息,但系统会缓存这些消息直到晚间进行拨号连接为止。
向断开连接的队列发送消息同向可用队列发送消息的过程几乎完全相同。当要向其发送的队列不可用时,不必进行任何特殊的配置以使组件将消息存储在临时队列中。有两种需要注意的主要差异:
如果队列不可用而域控制器还在工作,则必须通过队列的格式名而不是路径名来标识要向其发送的队列。当队列断开连接时,队列的域控制器无法正确地解析路径名。有关格式名的更多信息,请参见队列引用建议。
如果针对消息发送操作设置了超时间隔,将从发送消息时起开始计算超时期限。这意味着当搁置在本地计算机上的消息等待队列变得可用时,超时期限处于活动状态,而过期时间正在逼近。如果要使用超时期限,必须要么将它的时间间隔设置得足够长以允许传递,要么请求消息的否定确认,以便知道过期是否已经发生。有关在消息无法传递时请求确认的更多信息,请参见如何:请求消息的确认。
向断开连接的队列发送消息
创建 MessageQueue 组件的实例。有关更多信息,请参见如何:创建 MessageQueue 组件实例。
将组件的 Path 属性设置为要向它发送消息的队列的格式名。
说明: 如果通过“服务器资源管理器”创建组件,此属性将自动引用路径而不是格式名。若要更改为格式名,请单击 Path 属性旁的展开图标。在出现的对话框中,找到组件所引用的队列并选择它;然后选择“队列引用依据”字段中的“格式名”并单击“确定”。
按正常的方式发送消息。