7.4.4 Messageインタフェース

Messageインタフェースはペイロードを持たないメッセージを送受信するために使用できます。Messageインタフェースは,すべてのJMSメッセージのルートインタフェースです。

JMSメッセージはヘッダとプロパティとペイロード(メッセージ本体)の3要素から構成されます。JMSメッセージ,構成要素およびアクセスモードについては,「2.5 メッセージの構成」を参照してください。

<この項の構成>
(1) ヘッダの設定と取得
(2) プロパティの設定,取得および初期化
(3) ペイロードの初期化
(4) メッセージ受信の承認
(5) 形式
(6) フィールド
(7) メソッド

(1) ヘッダの設定と取得

Messageインタフェースを使用することでヘッダを設定および取得できます。

(2) プロパティの設定,取得および初期化

Messageインタフェースを使用することでプロパティを設定,取得および初期化できます。また,プロパティの値は上書きできます。プロパティの初期化にはclearProperties()メソッドを使用します。

(3) ペイロードの初期化

clearBody()メソッドを発行してペイロードを初期化します。

(4) メッセージ受信の承認

acknowledge()メソッドを発行して,メッセージの受信を承認します。

(5) 形式

public interface Message
{
 public static final int   DEFAULT_DELIVERY_MODE;
 public static final int   DEFAULT_PRIORITY;
 public static final long  DEFAULT_TIME_TO_LIVE;
 public void     acknowledge() throws JMSException;
 public void     clearBody() throws JMSException;
 public void     clearProperties() throws JMSException;
 public boolean  getBooleanProperty(java.lang.String name)
                   throws JMSException;
 public byte     getByteProperty(java.lang.String name)
                   throws JMSException;
 public double   getDoubleProperty(java.lang.String name)
                   throws JMSException;
 public float    getFloatProperty(java.lang.String name)
                   throws JMSException;
 public int      getIntProperty(java.lang.String name)
                   throws JMSException;
 public java.lang.String
                 getJMSCorrelationID() throws JMSException;
 public byte[]   getJMSCorrelationIDAsBytes() throws JMSException;
 public int      getJMSDeliveryMode() throws JMSException;
 public Destination
                 getJMSDestination() throws JMSException;
 public long     getJMSExpiration() throws JMSException;
 public java.lang.String
                 getJMSMessageID() throws JMSException;
 public int      getJMSPriority() throws JMSException;
 public boolean  getJMSRedelivered() throws JMSException;
 public Destination
                 getJMSReplyTo() throws JMSException;
 public long     getJMSTimestamp() throws JMSException;
 public java.lang.String
                 getJMSType() throws JMSException;
 public long     getLongProperty(java.lang.String name)
                   throws JMSException;
 public java.lang.Object
                 getObjectProperty(java.lang.String name)
                   throws JMSException;
 public java.util.Enumeration
                 getPropertyNames() throws JMSException;
 public short    getShortProperty(java.lang.String name)
                   throws JMSException;
 public java.lang.String
                 getStringProperty(java.lang.String name)
                   throws JMSException;
 public boolean  propertyExists(java.lang.String name)
                   throws JMSException;
 public void     setBooleanProperty(java.lang.String name,
                   boolean value) throws JMSException;
 public void     setByteProperty(java.lang.String name, byte value)
                   throws JMSException;
 public void     setDoubleProperty(java.lang.String name,
                   double value) throws JMSException;
 public void     setFloatProperty(java.lang.String name, float value)
                   throws JMSException;
 public void     setIntProperty(java.lang.String name, int value)
                   throws JMSException;
 public void     setJMSCorrelationID(java.lang.String correlationID)
                   throws JMSException;
 public void     setJMSCorrelationIDAsBytes(byte[] correlationID)
                   throws JMSException;
 public void     setJMSDeliveryMode(int deliveryMode)
                   throws JMSException;
 public void     setJMSDestination(Destination destination)
                   throws JMSException;
 public void     setJMSExpiration(long expiration)
                   throws JMSException;
 public void     setJMSMessageID(java.lang.String id)
                   throws JMSException;
 public void     setJMSPriority(int priority) throws JMSException;
 public void     setJMSRedelivered(boolean redelivered)
                   throws JMSException;
 public void     setJMSReplyTo(Destination replyTo)
                   throws JMSException;
 public void     setJMSTimestamp(long timestamp) throws JMSException;
 public void     setJMSType(java.lang.String type)
                   throws JMSException;
 public void     setLongProperty(java.lang.String name, long value)
                   throws JMSException;
 public void     setObjectProperty(java.lang.String name,
                   java.lang.Object value) throws JMSException;
 public void     setShortProperty(java.lang.String name, short value)
                   throws JMSException;
 public void     setStringProperty(java.lang.String name,
                   java.lang.String value) throws JMSException;
}

(6) フィールド

「(5) 形式」に記載した順序で各フィールドを説明します。

(a) DEFAULT_DELIVERY_MODEフィールド

public static final int DEFAULT_DELIVERY_MODE

メッセージの属性を示す値のデフォルト値を保持しています。デフォルト値はDeliveryMode.PERSISTENT(永続)です。

(b) DEFAULT_PRIORITYフィールド

public static final int DEFAULT_PRIORITY

メッセージの優先度を示す値のデフォルト値を保持しています。デフォルト値は4です。

(c) DEFAULT_TIME_TO_LIVEフィールド

public static final long DEFAULT_TIME_TO_LIVE

メッセージの保持時間を示す値のデフォルト値を保持しています。デフォルト値は0です。

(7) メソッド

「(5) 形式」に記載した順序で各メソッドを説明します。

(a) acknowledgeメソッド

public void acknowledge() throws JMSException

現在のメッセージおよび同じセッションで以前に受信し,かつ以前に承認していないすべてのメッセージに対して,メッセージの受信を承認します。メソッドが正常に終了した場合,受信側は承認したメッセージを何度も受信しないで済みます。

メソッドを発行できる条件を次に示します。条件外でメソッドを発行した場合はJMSExceptionが発生します。

(b) clearBodyメソッド

public void clearBody() throws JMSException

BytesMessage,ObjectMessageおよびTextMessageオブジェクトでメソッドを発行した場合,JMSメッセージのペイロード(メッセージ本体)が初期化されます。初期化されたペイロードの値は,メッセージ生成直後のペイロードの値と同じです。Messageオブジェクトでメソッドを発行した場合は無視されます。なお,メソッドを発行してもヘッダとプロパティは初期化されません。

ペイロードが読み取り専用モードの際にメソッドを発行した場合,ペイロードが初期化されるとともにペイロードの書き込みができるようになります。

(c) clearPropertiesメソッド

public void clearProperties() throws JMSException

メッセージのプロパティを初期化します。初期化されたプロパティの値はメッセージ生成直後のプロパティの値と同じです。なお,メソッドを実行してもヘッダとペイロードは初期化されません。

プロパティが読み取り専用モードの際にメソッドを発行した場合,プロパティが初期化されるとともにプロパティの読み取りと書き込みの両方ができるようになります。

(d) getBooleanPropertyメソッド

public boolean getBooleanProperty(java.lang.String name)
 throws JMSException

boolean型のプロパティの値を返します。

(e) getBytePropertyメソッド

public byte getByteProperty(java.lang.String name) throws JMSException

byte型のプロパティの値を返します。

(f) getDoublePropertyメソッド

public double getDoubleProperty(java.lang.String name)
 throws JMSException

double型のプロパティの値を返します。

(g) getFloatPropertyメソッド

public float getFloatProperty(java.lang.String name)
 throws JMSException

float型のプロパティの値を返します。

(h) getIntPropertyメソッド

public int getIntProperty(java.lang.String name) throws JMSException

int型のプロパティの値を返します。

(i) getJMSCorrelationIDメソッド

public java.lang.String getJMSCorrelationID() throws JMSException

メッセージに設定されたJMSCorrelationIDヘッダの値をString型で取得します。JMSCorrelationIDヘッダが設定されていない場合,nullを返します。

(j) getJMSCorrelationIDAsBytesメソッド

public byte[] getJMSCorrelationIDAsBytes() throws JMSException

メッセージに設定されたJMSCorrelationIDヘッダの値をbyte[]で取得します。JMSCorrelationIDヘッダが設定されていない場合,nullを返します。

(k) getJMSDeliveryModeメソッド

public int getJMSDeliveryMode() throws JMSException

メッセージに設定されたJMSDeliveryModeヘッダの値を返します。JMSDeliveryModeヘッダが設定されていない場合,DeliveryMode.PERSISTENTを返します。

(l) getJMSDestinationメソッド

public Destination getJMSDestination() throws JMSException

メッセージに設定されたJMSDestinationヘッダの値を返します。JMSDestinationヘッダが設定されていない場合,nullを返します。

(m) getJMSExpirationメソッド

public long getJMSExpiration() throws JMSException

メッセージに設定されたJMSExpirationヘッダの値を返します。JMSExpirationヘッダが設定されていない場合,0を返します。

(n) getJMSMessageIDメソッド

public java.lang.String getJMSMessageID() throws JMSException

メッセージに設定されたJMSMessageIDヘッダの値を返します。JMSMessageIDヘッダが設定されていない場合,nullを返します。

(o) getJMSPriorityメソッド

public int getJMSPriority() throws JMSException

メッセージに設定されたJMSPriorityヘッダの値を返します。JMSPriorityヘッダが設定されていない場合,javax.jms.Messge.DEFAULT_PRIORITYを返します。

(p) getJMSRedeliveredメソッド

public boolean getJMSRedelivered() throws JMSException

メッセージに設定されたJMSRedeliveredヘッダの値を返します。JMSRedeliveredヘッダが設定されていない場合,falseを返します。

(q) getJMSReplyToメソッド

public Destination getJMSReplyTo() throws JMSException

メッセージに設定されたJMSReplyToヘッダの値を返します。JMSReplyToヘッダが設定されていない場合,nullを返します。

(r) getJMSTimestampメソッド

public long getJMSTimestamp() throws JMSException

メッセージに設定されたJMSTimestampヘッダの値を返します。JMSTimestampヘッダが設定されていない場合,0を返します。

(s) getJMSTypeメソッド

public java.lang.String getJMSType() throws JMSException

メッセージに設定されたJMSTypeヘッダの値を返します。JMSTypeヘッダが設定されていない場合,nullを返します。

(t) getLongPropertyメソッド

public long getLongProperty(java.lang.String name) throws JMSException

long型のプロパティの値を返します。

(u) getObjectPropertyメソッド

public java.lang.Object getObjectProperty(java.lang.String name)
 throws JMSException

Object型のプロパティの値を返します。指定された名前に対応するプロパティ値がない場合,nullを返します。

メソッドはBoolean,Byte,Short,Integer,Long,Float,DoubleおよびStringクラスの値だけを返します。

(v) getPropertyNamesメソッド

public java.util.Enumeration getPropertyNames() throws JMSException

すべてのプロパティの名前を返します。プロパティがない場合,nullを返します。

メソッドで取得するプロパティ名の順序は保証されません。

(w) getShortPropertyメソッド

public short getShortProperty(java.lang.String name)
 throws JMSException

short型のプロパティの値を返します。

(x) getStringPropertyメソッド

public java.lang.String getStringProperty(java.lang.String name)
 throws JMSException

String型のプロパティの値を返します。指定された名前に対応するプロパティ値がない場合,nullを返します。

(y) propertyExistsメソッド

public boolean propertyExists(java.lang.String name)
 throws JMSException

指定されたプロパティ名に対応するプロパティがあればtrueを返し,なければfalseを返します。

(z) setBooleanPropertyメソッド

public void setBooleanProperty(java.lang.String name, boolean value)
 throws JMSException

boolean型のプロパティの値を設定します。

プロパティ値は上書きできます。引数の文字数制限は半角全角を問いません。

(aa) setBytePropertyメソッド

public void setByteProperty(java.lang.String name, byte value)
 throws JMSException

byte型のプロパティの値を設定します。

プロパティ値は上書きできます。引数の文字数制限は半角全角を問いません。

(ab) setDoublePropertyメソッド

public void setDoubleProperty(java.lang.String name, double value)
 throws JMSException

double型のプロパティの値を設定します。

プロパティ値は上書きできます。引数の文字数制限は半角全角を問いません。

(ac) setFloatPropertyメソッド

public void setFloatProperty(java.lang.String name, float value)
 throws JMSException

float型のプロパティの値を設定します。

プロパティ値は上書きできます。引数の文字数制限は半角全角を問いません。

(ad) setIntPropertyメソッド

public void setIntProperty(java.lang.String name, int value)
 throws JMSException

int型のプロパティの値を設定します。

プロパティ値は上書きできます。引数の文字数制限は半角全角を問いません。

(ae) setJMSCorrelationIDメソッド

public void setJMSCorrelationID(java.lang.String correlationID)
 throws JMSException

メッセージのJMSCorrelationIDヘッダをString型で設定します。

ヘッダ値は上書きできます。引数の文字数制限は半角全角を問いません。

(af) setJMSCorrelationIDAsBytesメソッド

public void setJMSCorrelationIDAsBytes(byte[] correlationID)
 throws JMSException

メッセージのJMSCorrelationIDヘッダをbyte[]で設定します。

ヘッダ値は上書きできます。引数の文字数制限は半角全角を問いません。

(ag) setJMSDeliveryModeメソッド

public void setJMSDeliveryMode(int deliveryMode) throws JMSException

このメソッドは未サポートです。

このメソッドで設定した値は実際には使用されません。

(ah) setJMSDestinationメソッド

public void setJMSDestination(Destination destination)
 throws JMSException

このメソッドは未サポートです。

このメソッドで設定した値は実際には使用されません。

(ai) setJMSExpirationメソッド

public void setJMSExpiration(long expiration) throws JMSException

このメソッドは未サポートです。

このメソッドで設定した値は実際には使用されません。

(aj) setJMSMessageIDメソッド

public void setJMSMessageID(java.lang.String id) throws JMSException

このメソッドは未サポートです。

このメソッドで設定した値は実際には使用されません。

(ak) setJMSPriorityメソッド

public void setJMSPriority(int priority) throws JMSException

このメソッドは未サポートです。

このメソッドで設定した値は実際には使用されません。

(al) setJMSRedeliveredメソッド

public void setJMSRedelivered(boolean redelivered) throws JMSException

このメソッドは未サポートです。

このメソッドで設定した値は実際には使用されません。

(am) setJMSReplyToメソッド

public void setJMSReplyTo(Destination replyTo) throws JMSException

メッセージのJMSReplyToヘッダをDestination型で設定します。

ヘッダ値は上書きできます。

(an) setJMSTimestampメソッド

public void setJMSTimestamp(long timestamp) throws JMSException

このメソッドは未サポートです。

このメソッドで設定した値は実際には使用されません。

(ao) setJMSTypeメソッド

public void setJMSType(java.lang.String type) throws JMSException

メッセージのJMSTypeヘッダをStringで設定します。

ヘッダ値は上書きできます。引数の文字数制限は半角全角を問いません。

(ap) setLongPropertyメソッド

public void setLongProperty(java.lang.String name, long value)
 throws JMSException

long型のプロパティの値を設定します。

プロパティ値は上書きできます。引数の文字数制限は半角全角を問いません。

(aq) setObjectPropertyメソッド

public void setObjectProperty(java.lang.String name,
 java.lang.Object value) throws JMSException

Object型のプロパティの値を設定します。

(ar) setShortPropertyメソッド

public void setShortProperty(java.lang.String name, short value)
 throws JMSException

short型のプロパティの値を設定します。

プロパティ値は上書きできます。引数の文字数制限は半角全角を問いません。

(as) setStringPropertyメソッド

public void setStringProperty(java.lang.String name,
 java.lang.String value) throws JMSException

String型のプロパティの値を設定します。