Message オブジェクトは、アプリケーションが送信または受信するメッセージを表します。IMessage は、IMapMessage などのメッセージ・クラスのスーパークラスです。
IBM.XMS.IPropertyContext | +----IBM.XMS.IMessage
Message オブジェクトの JMS メッセージ・ヘッダー・フィールドのリストについては、XMS メッセージのヘッダー・フィールドを参照してください。 Message オブジェクトの JMS 定義プロパティーのリストについては、メッセージの JMS 定義プロパティーを参照してください。 Message オブジェクトの IBM 定義プロパティーのリストについては、メッセージの IBM 定義プロパティーを参照してください。
メッセージは、ガーベッジ・コレクターによって削除されます。 メッセージが削除されると、これによってメッセージが使用していたリソースが解放されます。
.NET プロパティー | 説明 |
---|---|
JMSCorrelationID | メッセージの相関 ID を String オブジェクトとして取得および設定します。 |
JMSDeliveryMode | メッセージの送達モードを取得および設定します。 |
JMSDestination | メッセージの宛先を取得および設定します。 |
JMSExpiration | メッセージの有効期限切れ時刻を取得および設定します。 |
JMSMessageID | メッセージのメッセージ ID を、このメッセージ ID をカプセル化している String オブジェクトとして取得し、設定します。 |
JMSPriority | メッセージの優先順位を取得および設定します。 |
JMSRedelivered | メッセージが再配信されるかどうかの標識を取得し、メッセージが再配信されるかどうかを示します。 |
JMSReplyTo | メッセージに対する応答が送信される宛先を取得および設定します。 |
JMSTimestamp | メッセージが送信された時刻を取得および設定します。 |
JMSType | メッセージのタイプを取得および設定します。 |
PropertyNames | メッセージの名前プロパティーの列挙を取得します。 |
DeliveryMode JMSDeliveryMode { get; set; }
メッセージの送達モードは、以下の値のいずれかです。
新規に作成されて送信されていないメッセージの場合、送達モードは DeliveryMode.Persistent です。ただし、送達モードが DeliveryMode.NonPersistent であるブローカーへのリアルタイム接続の場合を除きます。 受信されたメッセージについては、受信側アプリケーションが JMSDeliveryMode を設定して送達モードを変更していない限り、このメソッドでは、メッセージ送信時に IMessageProducer.send() 呼び出しによって設定された送達モードが戻されます。
IDestination JMSDestination { get; set; }
宛先は、メッセージの送信時に IMessageProducer.send() 呼び出しによって設定されます。JMSDestination の値は無視されます。ただし、JMSDestination を使用して、受信されたメッセージの宛先を変更することができます。
未送信の新規作成メッセージの場合、送信側アプリケーションが JMSDestination を設定して宛先を設定しない限り、メソッドはヌルの Destination オブジェクトを戻します。受信されたメッセージについては、受信側アプリケーションが JMSDestination を設定して宛先を変更していない限り、このメソッドでは、メッセージ送信時に IMessageProducer.send() 呼び出しによって設定された宛先の Destination オブジェクトが戻されます。
Int64 JMSExpiration { get; set; }
有効期限切れ時刻は、メッセージの送信時に IMessageProducer.send() 呼び出しによって設定されます。その値は、送信側アプリケーションが指定した存続時間を、メッセージの送信時刻に加算して計算されます。有効期限切れ時刻は、1970 年 1 月 1 日 00:00:00 GMT からのミリ秒で表されます。
新規に作成されて送信されていないメッセージの場合、送信側アプリケーションが JMSExpiration を設定して異なる有効期限切れ時刻を設定していない限り、有効期限切れ時刻は 0 です。受信されたメッセージについては、受信側アプリケーションが JMSExpiration を設定して有効期限切れ時刻を変更していない限り、このメソッドでは、メッセージ送信時に IMessageProducer.send() 呼び出しによって設定された有効期限切れ時刻が戻されます。
存続時間が 0 の場合、IMessageProducer.send() 呼び出しでは、有効期限切れ時刻が 0 に設定されますが、これはメッセージの有効期限がないことを示します。
XMS は、有効期限が切れたメッセージを廃棄し、アプリケーションに配信しません。
String JMSMessageID { get; set; }
メッセージのメッセージ ID を、このメッセージ ID をカプセル化している String オブジェクトとして取得し、設定します。
メッセージ ID は、メッセージの送信時に IMessageProducer.send() 呼び出しによって設定されます。受信されたメッセージについては、受信側アプリケーションが JMSMessageID を設定してメッセージ ID を変更していない限り、このメソッドでは、メッセージ送信時に IMessageProducer.send() 呼び出しによって設定されたメッセージ ID が戻されます。
メッセージにメッセージ ID がない場合、このメソッドは NULL を戻します。
Int32 JMSPriority { get; set; }
優先順位は、メッセージの送信時に IMessageProducer.send() 呼び出しによって設定されます。値は 0 (最低優先順位) から 9 (最高優先順位) までの整数です。
新規に作成されて送信されていないメッセージの場合、送信側アプリケーションが JMSPriority を設定して異なる優先順位を設定していない限り、優先順位は 4 です。 受信されたメッセージについては、受信側アプリケーションが JMSPriority を設定して優先順位を変更していない限り、このメソッドでは、メッセージ送信時に IMessageProducer.send() 呼び出しによって設定された優先順位が戻されます。
Boolean JMSRedelivered { get; set; }
メッセージが再配信されるかどうかの標識を取得し、メッセージが再配信されるかどうかを示します。標識は、メッセージの受信時に IMessageConsumer.receive() 呼び出しによって設定されます。
このプロパティーの値は、以下のとおりです。
ブローカーへのリアルタイム接続の場合、常に値は False です。
メッセージの送信前に JMSRedelivered が設定した再配信の標識は、メッセージの送信時の IMessageProducer.send() 呼び出しでは無視され、メッセージ受信時の IMessageConsumer.receive() 呼び出しでは無視されて置き換えられます。ただし、JMSRedelivered を使用して、受信されたメッセージの標識を変更することができます。
Int64 JMSTimestamp { get; set; }
タイム・スタンプは、メッセージの送信時に IMessageProducer.send() 呼び出しによって設定され、1970 年 1 月 1 日 00:00:00 GMT からのミリ秒で表されます。
新規に作成されて送信されていないメッセージの場合、送信側アプリケーションが JMSTimestamp を設定して異なるタイム・スタンプを設定していない限り、タイム・スタンプは 0 です。受信されたメッセージについては、受信側アプリケーションが JMSTimestamp を設定してタイム・スタンプを変更していない限り、このメソッドでは、メッセージ送信時に IMessageProducer.send() 呼び出しによって設定されたタイム・スタンプが戻されます。
メソッド | 説明 |
---|---|
Acknowledge | このメッセージと、セッションが以前に受信して、まだ応答していないすべてのメッセージに応答します。 |
ClearBody | メッセージの本体をクリアします。 |
ClearProperties | メッセージのプロパティーをクリアします。 |
PropertyExists | メッセージに、指定された名前のプロパティーがあるかどうかを検査します。 |
void Acknowledge();
このメッセージと、セッションが以前に受信して、まだ応答していないすべてのメッセージに応答します。
セッションの応答モードが AcknowledgeMode.ClientAcknowledge である場合、アプリケーションはこのメソッドを呼び出すことができます。セッションがその他の応答モードであるか、セッションが処理中である場合は、このメソッドの呼び出しは無視されます。
受信されたが、応答されていないメッセージは、再配信される可能性があります。
メッセージの応答について詳しくは、セッションでのメッセージの受信の確認を参照してください。
void ClearBody();
メッセージの本体をクリアします。ヘッダー・フィールドおよびメッセージ・プロパティーはクリアされません。
アプリケーションがメッセージ本体をクリアすると、本体は、新規に作成されたメッセージ内の空の本体と同じ状態になります。新規に作成されたメッセージ内の空の本体の状態は、メッセージ本体のタイプによって異なります。詳しくは、XMS メッセージの本文を参照してください。
アプリケーションは、本体の状態にかかわらず、いつでもメッセージ本体をクリアできます。 メッセージ本体が読み取り専用の場合、アプリケーションが本体に書き込むことができる唯一の方法は、まずアプリケーションが本体をクリアすることです。
void ClearProperties();
メッセージのプロパティーをクリアします。ヘッダー・フィールドおよびメッセージ本体はクリアされません。
アプリケーションがメッセージのプロパティーをクリアした場合、プロパティーは読み書き可能になります。
アプリケーションは、プロパティーの状態にかかわらず、いつでもメッセージのプロパティーをクリアできます。メッセージのプロパティーが読み取り専用の場合、プロパティーを書き込み可能にすることができる唯一の方法は、アプリケーションがまずプロパティーをクリアすることです。