Cosminexus V9 アプリケーションサーバ Cosminexus Reliable Messaging

[目次][用語][索引][前へ][次へ]

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を返します。

注意
setJMSCorrelationIDAsBytes(byte[])実行時のJ2EEサーバで有効となるJava VMのデフォルトエンコーディングと,getJMSCorrelationIDAsBytes()実行時のJ2EEサーバで有効となるJava VMのデフォルトエンコーディングは,同じエンコーディングを使用してください。
異なるエンコーディングを使用する場合,setJMSCorrelationIDAsBytes(byte[])の引数の値と,getJMSCorrelationIDAsBytes()で取得される値は異なる場合があります。
キュー間転送を用い,異なるシステム間でJMSCorrelationIDを設定したメッセージの送受信を行う場合に注意してください。
(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[]で設定します。

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

注意
  • 引数には,J2EEサーバで有効となるJava VMのデフォルトエンコーディングで正しくStringに変換ができるbyte[]を指定してください。正しく変換できない引数を指定した場合,JMSCorrelationIDに不正なデータが設定されます。
  • setJMSCorrelationIDAsBytes(byte[])実行時のJ2EEサーバで有効となるJava VMのデフォルトエンコーディングと,getJMSCorrelationIDAsBytes()実行時のJ2EEサーバで有効となるJava VMのデフォルトエンコーディングは,同じエンコーディングを使用してください。
    異なるエンコーディングを使用する場合,setJMSCorrelationIDAsBytes(byte[])の引数の値と,getJMSCorrelationIDAsBytes()で取得される値は異なる場合があります。
    キュー間転送を用い,異なるシステム間でJMSCorrelationIDを設定したメッセージの送受信を行う場合に注意してください。
(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型のプロパティの値を設定します。