2.5.2 メッセージ要素のアクセスモード

JMSメッセージのメッセージ要素(ヘッダ,プロパティ,およびペイロード)の値を取得したり,設定したりするには,メッセージインタフェースが提供するメソッドを使用します。各要素には,次に示すアクセスモードがあります。

メッセージ要素とアクセスモードの関係について,次の表に示します。

表2-17 メッセージ要素とアクセスモードの関係

項番メッセージ要素読み取り書き込み両用モード読み取り専用モード書き込み専用モード
1ヘッダ××
2プロパティ×
3ペイロード
(凡例)
○:あります。
×:ありません。

<この項の構成>
(1) メッセージ生成時のアクセスモード
(2) メッセージ受信時のアクセスモード

(1) メッセージ生成時のアクセスモード

メッセージインタフェースのインスタンスは,次に示すメソッドの発行によって生成します。

メッセージ生成時のメッセージ要素のアクセスモードについて,次の表に示します。

表2-18 メッセージ生成時のメッセージ要素のアクセスモード

項番インタフェースメッセージ要素モード
1Messageヘッダ読み取り書き込み両用モード
2プロパティ
3BytesMessageヘッダ読み取り書き込み両用モード
4プロパティ
5ペイロード書き込み専用モード
6ObjectMessageヘッダ読み取り書き込み両用モード
7プロパティ
8ペイロード
9TextMessageヘッダ
10プロパティ
11ペイロード

(2) メッセージ受信時のアクセスモード

受信側アプリケーションは,QueueReceiver.receive()またはreceiveNoWait()メソッドの戻り値として,メッセージを受信します。

メッセージ受信時のメッセージ要素のアクセスモードについて,次の表に示します。

表2-19 メッセージ受信時のメッセージ要素のアクセスモード

項番インタフェースメッセージ要素モード
1Messageヘッダ読み取り書き込み両用モード
2プロパティ読み取り専用モード
3BytesMessageヘッダ読み取り書き込み両用モード
4プロパティ読み取り専用モード
5ペイロード
6ObjectMessageヘッダ読み取り書き込み両用モード
7プロパティ読み取り専用モード
8ペイロード
9TextMessageヘッダ読み取り書き込み両用モード
10プロパティ読み取り専用モード
11ペイロード

また,メッセージ要素のアクセスモードは,メッセージ受信後に特定のタイミングによって移行することがあります。アクセスモードが移行するタイミングについて,次の表に示します。

表2-20 アクセスモードが移行するタイミング

項番タイミングメッセージ要素移行前移行後
1Message.clearProperties()メソッドの発行プロパティ読み取り専用モード読み取り書き込み両用モード
2ObjectMessage.clearBody()メソッドの発行
TextMessage.clearBody()メソッドの発行
ペイロード
3BytesMessage.clearBody()メソッドの発行書き込み専用モード
4BytesMessage.reset()メソッドの発行書き込み専用モード読み取り専用モード