默认消息属性
更新:2007 年 11 月
创建 MessageQueue 组件的实例时,您可以设置该组件发送的消息将使用的一系列默认属性。这使您在定义消息时节省了时间,并对 Send 方法有更多的控制权,而不必创建和配置 Message 对象。
说明: |
---|
只有当消息不是使用 Message 对象发送的时,才使用 DefaultPropertiesToSend 值。当使用 Message 对象发送消息时,使用的是 Message 对象的属性。 |
可以通过在“属性”窗口的 DefaultPropertiesToSend 区域设置值,或者通过设置 DefaultPropertiesToSend 对象的属性值,来设置默认的消息属性。这些默认属性控制是否生成确认消息和它们发往何处、如何加密和验证消息、消息的超时期限等功能。
本页概述了如何设置在这方面较为关键的一些属性。
消息优先级
为消息设置默认优先级将影响消息发送到目标队列的顺序。设置 Priority 属性,确定组件所发送消息的默认优先级。优先级等级默认为正常,并且包括更低或更高的优先级设置。
消息的优先级设置决定消息在队列中的位置。以高优先级发送的消息在队列中的位置较高,而优先级低的消息在队列中的位置较低。当队列接收到具有相同优先级设置的一组消息时,它们按照发送时间在队列中排列。
说明: |
---|
不能为正在向事务性队列发送的消息设置优先级,因为在事务性队列中处理消息的顺序是由事务本身决定的。 |
确认和响应属性
有几个默认属性可用来确定是否为组件的消息生成响应和确认以及如何处理这些响应。可设置为所有消息处理操作的默认属性的属性包括:
AcknowledgeType 和 AdministrationQueue 属性。可以利用这些属性来确定当消息到达或未能到达目标队列时,或者当目标应用程序从队列中检索消息时,是否应生成确认消息。有关更多信息,请参见如何:请求消息的确认。
ResponseQueue 属性,可用来为从队列中检索消息的应用程序发送的任何消息指示返回路径。这些消息不同于确认消息,因为它们由目标应用程序而不是队列管理器生成。
UseJournalQueue 属性,可用来确定是否应在日记队列中存储输出消息的副本。同样,可以通过设置 UseDeadLetterQueue 属性来确定是否需要将无法送达的消息发送至死信队列。
超时属性
有两个与时间相关的属性可用来帮助保持更好地控制消息。这两个属性都决定消息在被丢弃前可在系统中存在多长时间。使用 TimeToReachQueue 属性指定消息必须用多长时间尝试到达目标队列。使用 TimeToBeReceived 属性指定自消息发送时起,直到目标应用程序将其从队列中移除为止,消息在系统中保留多长时间。如果两个计时器时间间隔中的任何一个到期,“消息队列”将丢弃消息。
当消息因计时器到期而被丢弃时,队列管理器可能会采取附加步骤:
如果将 UseDeadLetterQueue 属性设置为 true,将向指定的死信队列发送已丢弃消息的副本。
如果将 AcknowledgeType 属性设置为发送否定确认,将向指定的管理队列发送确认消息。
默认情况下,没有为这两个属性设置超时间隔。如果为这两个属性都设置了值,那么 TimeToBeReceived 属性中的值优先。