IMessage
Message 对象表示应用程序发送或接收的消息。 IMessage 是诸如 IMapMessage 等消息类的超类。
- 继承层次结构:
IBM.XMS.IPropertyContext | +----IBM.XMS.IMessage
要获取 Message 对象中 JMS 消息头字段的列表,请参阅 XMS 消息的头字段。 有关 JMS 定义的 Message 对象属性的列表,请参阅 JMS 定义的消息属性。 有关 IBM® 定义的 Message 对象属性的列表,请参阅 IBM定义的消息属性。 有关 Message 对象的 JMS_IBM_MQMD* 属性的列表,请参阅 JMS_IBM_MQMD* 属性
消息由垃圾回收器进行删除。 删除消息时,将释放其使用的资源。
.NET 个属性
- .NET 属性的摘要:
.NET 属性 描述 JMSCorrelationID 获取消息的相关标识并将其设置为 String 对象。 JMSDeliveryMode 获取和设置消息的传递方式。 JMSDestination 获取和设置消息的目标。 JMSExpiration 获取和设置消息的到期时间。 JMSMessageID 获取消息的消息标识,并将其设置为用于封装消息标识的 String 对象。 JMSPriority 获取和设置消息优先级。 JMSRedelivered 获取是否正在重新传递消息的指示,并指示是否正在重新传递消息。 JMSReplyTo 获取和设置要将消息应答发送到的目标。 JMSTimestamp 获取和设置消息发送时间。 JMSType 获取和设置消息类型。 PropertyNames 获取消息的名称属性的枚举。
GetJMSCorrelationID - 获取和设置 JMSCorrelationID
- 接口:
String JMSCorrelationID { get; set; }
获取消息的相关标识并将其设置为 String 对象。
- 异常:
- XMSException
JMSDeliveryMode - 获取和设置 JMSDeliveryMode
- 接口:
DeliveryMode JMSDeliveryMode { get; set; }
获取和设置消息的传递方式。
消息的传递方式可为以下值之一:
DeliveryMode.PersistentDeliveryMode.NonPersistent
对于尚未发送的新创建的消息,传递方式为 DeliveryMode.Persistent,但与代理程序的实时连接除外,其传递方式为 DeliveryMode.NonPersistent。 对于已收到的消息,此方法将返回由 IMessageProducer.send() 调用在发送消息时设置的传递方式,除非接收应用程序通过设置 JMSDeliveryMode 更改了传递方式。
- 异常:
- XMSException
JMSDestination - 获取和设置 JMSDestination
- 接口:
IDestination JMSDestination { get; set; }
获取和设置消息的目标。
目标是由 IMessageProducer.send() 调用在发送消息时设置的。 将忽略 JMSDestination 的值。 但是,可以使用 JMSDestination 来更改已接收的消息的目标。
对于尚未发送的新创建的消息,此方法将返回空的 Destination 对象,除非发送应用程序通过设置 JMSDestination 设置了目标。 对于已收到的消息,此方法将针对由 IMessageProducer.send() 调用在发送消息时设置的目标返回 Destination 对象,除非接收应用程序通过设置 JMSDestination 更改了目标。
- 异常:
- XMSException
JMSExpiration - 获取和设置 JMSExpiration
- 接口:
Int64 JMSExpiration { get; set; }
获取和设置消息的到期时间。
到期时间是由 IMessageProducer.send() 调用在发送消息时设置的。 其值的计算方式为:在消息发送时间上加上发送应用程序所指定的生存时间。 到期时间将以自 1970 年 1 月 1 日格林威治标准时间 00:00:00 起的毫秒数表示。
对于尚未发送的新创建的消息,到期时间为 0,除非发送应用程序通过设置 JMSExpiration 设置了不同的到期时间。 对于已收到的消息,此方法将返回由 IMessageProducer.send() 调用在发送消息时设置的到期时间,除非接收应用程序通过设置 JMSExpiration 更改了到期时间。
如果生存时间为 0,那么 IMessageProducer.send() 调用会将到期时间设置为 0,以指示此消息不会到期。
XMS 会废弃已到期的消息,并且不会将这些消息传递到应用程序。
- 异常:
- XMSException
JMSMessageID - 获取和设置 JMSMessageID
- 接口:
String JMSMessageID { get; set; }
获取消息的消息标识,并将其设置为用于封装消息标识的 String 对象。
消息标识是由 IMessageProducer.send() 调用在发送消息时设置的。 对于已收到的消息,此方法将返回由 IMessageProducer.send() 调用在发送消息时设置的消息标识,除非接收应用程序通过设置 JMSMessageID 更改了消息标识。
如果消息没有消息标识,那么此方法将返回空值。
- 异常:
- XMSException
JMSPriority - 获取和设置 JMSPriority
- 接口:
Int32 JMSPriority { get; set; }
获取和设置消息优先级。
优先级是由 IMessageProducer.send() 调用在发送消息时设置的。 该值是范围 0(表示最低优先级)到 9(表示最高优先级)内的整数。
对于尚未发送的新创建的消息,优先级为 4,除非发送应用程序通过设置 JMSPriority 设置了不同的优先级。 对于已收到的消息,此方法将返回由 IMessageProducer.send() 调用在发送消息时设置的优先级,除非接收应用程序通过设置 JMSPriority 更改了优先级。
- 异常:
- XMSException
JMSRedelivered - 获取和设置 JMSRedelivered
- 接口:
Boolean JMSRedelivered { get; set; }
获取是否正在重新传递消息的指示,并指示是否正在重新传递消息。 此指示是由 IMessageConsumer.receive() 调用在接收消息时设置的。
该属性具有以下值:
True(如果正在重新传递消息)。False(如果未在重新传递消息)。
对于与代理程序的实时连接,该值始终为 False。
IMessageProducer.send() 调用在发送消息时会忽略在发送消息之前由 JMSRedelivered 设置的重新传递指示,并且 IMessageConsumer.receive()调用在接收消息时会忽略和替换该指示。 但是,可以使用 JMSRedelivered 来更改已接收的消息指示。
- 异常:
- XMSException
JMSReplyTo - 获取和设置 JMSReplyTo
- 接口:
IDestination JMSReplyTo { get; set; }
获取和设置要将消息应答发送到的目标。
该属性的值是一个 Destination 对象,用于表示要将消息应答发送到的目标。 空的 Destination 对象表示不期望收到应答。
- 异常:
- XMSException
JMSTimestamp - 获取和设置 JMSTimestamp
- 接口:
Int64 JMSTimestamp { get; set; }
获取和设置消息发送时间。
此时间戳记是由 IMessageProducer.send() 调用在发送消息时设置的,并且将以从 1970 年 1 月 1 日格林威治标准时间 00:00:00 起的毫秒数表示。
对于尚未发送的新创建的消息,此时间戳记为 0,除非发送应用程序通过设置 JMSTimestamp 设置了不同的时间戳记。 对于已收到的消息,此方法将返回由 IMessageProducer.send() 调用在发送消息时设置的时间戳记,除非接收应用程序通过设置 JMSTimestamp 更改了时间戳记。
- 异常:
- XMSException
- 如果未定义时间戳记,那么此方法将返回 0,但不抛出任何异常。
JMSType - 获取和设置 JMSType
- 接口:
String JMSType { get; set; }
获取和设置消息类型。
JMSType 的值是用于封装消息类型的字符串。 如果需要进行数据转换,那么该值是转换后的类型。
- 异常:
- XMSException
PropertyNames - 获取属性
- 接口:
System.Collections.IEnumerator PropertyNames { get; }
获取消息的名称属性的枚举。
- 异常:
- XMSException
方法
- 方法汇总:
方法 描述 确认 确认此消息以及会话先前接收到的所有未确认消息。 ClearBody 清除消息主体。 ClearProperties 清除消息属性。 PropertyExists 检查消息是否包含具有指定名称的属性。
Acknowledge - 确认
- 接口:
void Acknowledge();
确认此消息以及会话先前接收到的所有未确认消息。
如果会话确认方式为 AcknowledgeMode.ClientAcknowledge,那么应用程序可以调用此方法。 如果会话采用任何其他确认方式或者属于事务性会话,那么将忽略此方法调用。
可能会重新传递已接收但未确认的消息。
有关确认消息的更多信息,请参阅 ../develop/xms_cmesack.html#xms_cmesack。
- 参数:
- None
- 返回:
- Void
- 异常:
- XMSException
- IllegalStateException
ClearBody - 清除主体
- 接口:
void ClearBody();
清除消息主体。 将不清除头字段和消息属性。
如果应用程序清除了消息主体,那么该主体的状态将与新创建消息中的空主体保持一致。 新创建消息中的空主体的状态取决于消息主体的类型。 有关更多信息,请参阅 XMS 消息的主体。
无论消息主体处于何种状态,应用程序都可随时清除消息主体。 如果消息主体为只读,那么应用程序写入主体的唯一方式是应用程序先清除该主体。
- 参数:
- None
- 返回:
- Void
- 异常:
- XMSException
ClearProperties - 清除属性
- 接口:
void ClearProperties();
清除消息属性。 将不清除头字段和消息主体。
如果应用程序清除了消息属性,那么这些属性将变为可读且可写。
无论消息属性处于何种状态,应用程序都可随时清除消息属性。 如果消息属性为只读,那么属性变为可写的唯一方式是应用程序先清除这些属性。
- 参数:
- None
- 返回:
- Void
- 异常:
- XMSException
PropertyExists - 检查属性是否存在
- 接口:
Boolean PropertyExists(String propertyName);
检查消息是否包含具有指定名称的属性。
- 参数:
- propertyName(输入)
- 用于封装属性名称的 String 对象。
- 返回:
True(如果消息包含具有指定名称的属性)。False(如果消息不包含具有指定名称的属性)。
- 异常:
- XMSException
继承的属性和方法
- GetBooleanProperty、GetByteProperty、GetBytesProperty、GetCharProperty、GetDoubleProperty、GetFloatProperty、GetIntProperty、GetLongProperty、GetObjectProperty、GetShortProperty、GetStringProperty、SetBooleanProperty、SetByteProperty、SetBytesProperty、SetCharProperty、SetDoubleProperty、SetFloatProperty、SetIntProperty、SetLongProperty、SetObjectProperty、SetShortProperty、SetStringProperty