13.19 Messageクラス

メッセージは、エンキューおよびデキューの単位です。Messageオブジェクトは、その内容またはペイロードと、プロパティを保持します。このクラスは、メッセージ・プロパティを取得および設定するメソッドを提供します。

表13-25 Messageクラスで使用される列挙値

属性 オプション
MessageState
  • MSG_WAITINGは、メッセージ遅延時間に達していないことを示します。

  • MSG_READYは、メッセージの処理準備が完了していることを示します。

  • MSG_PROCESSEDは、メッセージが処理済で保持中であることを示します。

  • MSG_EXPIREDは、メッセージが例外キューに移動されたことを示します。

PayloadType
  • RAW

  • ANYDATA

  • OBJECT

表13-26 Messageメソッドの概要

メソッド 概要

Message()

Messageクラスのコンストラクタです。

getAnyData()

メッセージのAnyDataのペイロードを取り出します。

getAttemptsToDequeue()

メッセージのデキュー試行回数を取り出します。

getBytes()

メッセージのBytesのペイロードを取り出します。

getCorrelationId()

識別文字列を取り出します。

getDelay()

メッセージのエンキュー時の遅延を取り出します。

getExceptionQueueName()

処理できないMessageの移動先キューの名前を取り出します。

getExpiration()

メッセージの期限切れを取り出します。

getMessageEnqueuedTime()

メッセージのエンキュー時刻を取り出します。

getMessageState()

エンキュー時のメッセージの状態を取り出します。

getObject()

メッセージのオブジェクトのペイロードを取り出します。

getOriginalMessageId()

最後のキューでこのメッセージを生成したメッセージのIDを取り出します。

getPayloadType()

ペイロードの型を取り出します。

getPriority()

メッセージの優先順位を取り出します。

getSenderId()

Messageを送信したエージェントを取り出します。

isNull()

MessageオブジェクトがNULLかどうかをテストします。

operator=()

Messageの代入演算子です。

setAnyData()

メッセージのAnyDataのペイロードを指定します。

setBytes()

メッセージのBytesのペイロードを指定します。

setCorrelationId()

識別文字列を指定します。

setDelay()

エンキューされたMessageの遅延秒数を指定します。

setExceptionQueueName()

処理できないMessageオブジェクトの移動先キューの名前を指定します。

setExpiration()

期限切れになるまでにMessageをデキューできる期間を指定します。

setNull()

MessageオブジェクトをNULLに設定します。

setObject()

メッセージのオブジェクトのペイロードを指定します。

setOriginalMessageId()

Messageを生成した最後のキューのIDを指定します。

setPriority()

Messageオブジェクトの優先順位を指定します。

setRecipientList()

メッセージの宛先であるエージェントのリストを指定します。

setSenderId()

Messageの送信者を指定します。

13.19.1 Message()

Messageクラスのコンストラクタです。

構文 説明
Message(
    const Environment *env);

指定されたEnvironment内でMessageオブジェクトを作成します。

Message(
   const Message& mes);

コピー・コンストラクタです。

パラメータ 説明
env

Messageの環境を指定します。

mes

オリジナルのMessageオブジェクトです。

13.19.2 getAnyData()

MessageAnyDataのペイロードを取り出します。

構文

AnyData getAnyData() const;

13.19.3 getAttemptsToDequeue()

メッセージのデキュー試行回数を取り出します。エンキュー時には、このプロパティを取り出せません。

構文

int getAttemptsToDequeue() const;

13.19.4 getBytes()

MessageBytesのペイロードを取り出します。

構文

Bytes getBytes() const;

13.19.5 getCorrelationId()

識別文字列を取り出します。

構文

string getCorrelationId() const;

13.19.6 getDelay()

Messageのエンキュー時の遅延秒数を取り出します。

構文

int getDelay() const;

13.19.7 getExceptionQueueName()

Messageを正常に処理できない場合に、Messageの移動先となるキューの名前を取り出します。

構文

string getExceptionQueueName() const;

13.19.8 getExpiration()

Messageの有効期間(秒数)を取り出します。この期間中はメッセージをデキューできます。

構文

int getExpiration() const;

13.19.9 getMessageEnqueuedTime()

メッセージのエンキュー時刻をDate書式で取り出します。この値はシステムにより決定され、ユーザーは設定できません。

構文

Date getMessageEnqueuedTime() const;

13.19.10 getMessageState()

エンキュー時のメッセージの状態を取り出します。このパラメータではエンキュー時刻を設定できません。MessageStateの定義は、表13-25を参照してください。

構文

MessageState getMessageState() const;

13.19.11 getObject()

Messageのオブジェクトのペイロードを取り出します。

構文

PObject* getObject();

13.19.12 getOriginalMessageId()

オリジナルのメッセージIDを取り出します。あるキューから別のキューにメッセージが伝播されたとき、伝播後のメッセージの生成元メッセージのIDを最後のキューに取得します。

構文

Bytes getOriginalMessageId() const;

13.19.13 getPayloadType()

ペイロードの型を取り出します。表13-25PayloadTypeを参照してください。

構文

PayloadType getPayloadType( ) const;

13.19.14 getPriority()

Messageの優先順位を取り出します。

構文

int getPriority() const;

13.19.15 getSenderId()

Messageを送信したエージェントを取り出します。

構文

Agent getSenderId() const;

13.19.16 isNull()

MessageオブジェクトがNULLかどうかをテストします。MessageオブジェクトがNULLの場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

bool isNull() const;

13.19.17 operator=()

Messageの代入演算子です。

void operator=(
   const Message& mes);
パラメータ 説明
mes

オリジナルのメッセージを指定します。

13.19.18 setAnyData()

MessageAnyDataのペイロードを指定します。

構文

void setAnyData(
   const AnyData& anydata);
パラメータ 説明
anydata

Messageのデータの内容を指定します。

13.19.19 setBytes()

MessageBytesのペイロードを指定します。

構文

void setBytes(
   const Bytes& bytes);
パラメータ 説明
bytes

Messageのデータの内容を指定します。

13.19.20 setCorrelationId()

識別文字列を指定します。このパラメータは、エンキュー時にProducerにより設定されます。メッセージは、このIDを使用してデキューできます。IDには、ワイルドカード文字を含めることができます。

構文

void setCorrelationId(
   const string& id);
パラメータ 説明
id

IDを指定します。上限は128バイトです。

13.19.21 setDelay()

エンキューされたMessageの遅延秒数を指定します。遅延終了後は、Messageをデキューできます。

msgidによりデキューする場合は、遅延指定がオーバーライドされます。遅延付きでエンキューされたMessageは、WAITING状態になります。遅延は、Messageのプロデューサにより設定されます。

構文

void setDelay(
   int delay);
パラメータ 説明
delay

遅延を指定します。

13.19.22 setExceptionQueueName()

正常に処理できないMessageオブジェクトの移動先キューの名前を指定します。有効なキュー名を指定する必要があります。

移動時に例外キューが存在しなければ、Messageはキュー表に関連付けられているデフォルトの例外キューに移動し、アラート・ログに警告が記録されます。

また、デフォルトの例外キューが使用される場合、パラメータはエンキュー時にNULL値を戻します。属性では有効なキュー名を参照する必要があります。

構文

void setExceptionQueueName(
   const string& queue);
パラメータ 説明
queue

例外キューの名前を指定します。

13.19.23 setExpiration()

Messageオブジェクトをデキューできる有効期間を秒単位で指定します。この期間をすぎると、Messageは期限切れになります。

構文

void setExpiration(
   int exp);
パラメータ 説明
exp

有効期間を指定します。

13.19.24 setNull()

MessageオブジェクトをNULLに設定します。EnvironmentクラスterminateConnection()のコールによりConnectionが破棄される前に、すべてのMessageオブジェクトをNULLに設定する必要があります。

構文

void setNull();

13.19.25 setObject()

Messageのオブジェクトのペイロードを指定します。

構文

void setObject(
   PObject& pobj);
パラメータ 説明
pobj

データの内容を指定します。

13.19.26 setOriginalMessageId()

あるキューから別のキューにメッセージが伝播されたとき、伝播後のメッセージの生成元メッセージのIDを最後のキューに設定します。

構文

void setOriginalMessageId(
   const Bytes& queue);
パラメータ 説明
queue

最後のキューを指定します。

13.19.27 setPriority()

Messageオブジェクトの優先順位を指定します。この優先順位はエンキュー時に設定され、負の値に設定できます。デフォルトは0です。

構文

void setPriority(
   int priority);
パラメータ 説明
priority

Messageの優先順位を指定します。

13.19.28 setRecipientList()

Messageの宛先であるAgentのリストを指定します。これらの受信者は、キューのサブスクライバとは異なります。このプロパティはエンキュー時に設定されます。リスト内のAgentがすべて有効である必要があります。受信者リストによりデフォルトのサブスクライバ・リストがオーバーライドされます。

構文

void setRecipientList(
   vector<Agent>& agentList);
パラメータ 説明
agentList

Agentのリストを指定します。

13.19.29 setSenderId()

Messageの送信者を指定します。

構文

void setSenderId(
   const Agent& sender);
パラメータ 説明
sender

送信者IDを指定します。