メッセージキューイングアクセス機能 TP1/Message Queue - Access 使用の手引

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

Messageインタフェース(JMS)

Messageインタフェースは,すべてのJMSメッセージのルートインタフェースです。

すべてのメッセージのために使用されるJMSヘッダを定義します。ヘッダと本体から構成される小容量のエンティティとしてメッセージを扱います。メッセージ本体は,送られるアプリケーションデータを含んでいます。

形式

 
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 java.lang.String getJMSMessageID() throws JMSException;
  public void setJMSMessageID(java.lang.String id) throws JMSException;
  public long getJMSTimestamp() throws JMSException;
  public void setJMSTimestamp(long timestamp) throws JMSException;
  public byte[] getJMSCorrelationIDAsBytes() throws JMSException;
  public void setJMSCorrelationIDAsBytes(byte[] correlationID) throws JMSException;
  public java.lang.String getJMSCorrelationID() throws JMSException;
  public void setJMSCorrelationID(java.lang.String correlationID) throws JMSException;
  public Destination getJMSReplyTo() throws JMSException;
  public void setJMSReplyTo(Destination replyTo) throws JMSException;
  public Destination getJMSDestination() throws JMSException;
  public void setJMSDestination(Destination destination) throws JMSException;
  public int getJMSDeliveryMode() throws JMSException;
  public void setJMSDeliveryMode(int deliveryMode) throws JMSException;
  public boolean getJMSRedelivered() throws JMSException;
  public void setJMSRedelivered(boolean redelivered) throws JMSException;
  public java.lang.String getJMSType() throws JMSException;
  public void setJMSType(java.lang.String type) throws JMSException;
  public long getJMSExpiration() throws JMSException;
  public void setJMSExpiration(long expiration) throws JMSException;
  public int getJMSPriority() throws JMSException;
  public void setJMSPriority(int priority) throws JMSException;
  public void clearProperties() throws JMSException;
  public boolean propertyExists(java.lang.String name) throws JMSException;
  public boolean getBooleanProperty(java.lang.String name) throws JMSException;
  public byte getByteProperty(java.lang.String name) throws JMSException;
  public short getShortProperty(java.lang.String name) throws JMSException;
  public int getIntProperty(java.lang.String name) throws JMSException;
  public long getLongProperty(java.lang.String name) throws JMSException;
  public float getFloatProperty(java.lang.String name) throws JMSException;
  public double getDoubleProperty(java.lang.String name) throws JMSException;
  public java.lang.String getStringProperty(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 void setBooleanProperty(java.lang.String name, boolean value) throws JMSException;
  public void setByteProperty(java.lang.String name, byte value) throws JMSException;
  public void setShortProperty(java.lang.String name, short value) throws JMSException;
  public void setIntProperty(java.lang.String name, int value) throws JMSException;
  public void setLongProperty(java.lang.String name, long value) throws JMSException;
  public void setFloatProperty(java.lang.String name, float value) throws JMSException;
  public void setDoubleProperty(java.lang.String name, double value) throws JMSException;
  public void setStringProperty(java.lang.String name, java.lang.String value) throws JMSException;
  public void setObjectProperty(java.lang.String name, java.lang.Object value) throws JMSException;
  public void acknowledge() throws JMSException;
  public void clearBody() throws JMSException;
}

フィールド

● public static final int DEFAULT_DELIVERY_MODE

メッセージの永続性のデフォルトです。デフォルト値はDeliveryMode.PERSISTENT(永続)です。

● public static final int DEFAULT_PRIORITY

メッセージの優先度のデフォルトです。デフォルト値は4です。

● public static final long DEFAULT_TIME_TO_LIVE

メッセージの保持時間のデフォルトです。デフォルト値は0です。

メソッド

● public java.lang.String getJMSMessageID() throws JMSException

JMSMessageIDヘッダフィールドを取得します。

例外
JMSException:エラーが発生しました。

戻り値:メッセージ識別子

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

JMSMessageIDヘッダフィールドを設定します。JMSMessageIDヘッダフィールドは,送信時にTP1/Message Queueによって設定されるため,ユーザが設定しても無視されます。

受信したメッセージのJMSMessageIDヘッダフィールドを変更するときにこのメソッドを使用します。

JMSMessageIDの先頭には必ず「ID:」を付けてください。

パラメタ
id
メッセージ識別子を指定します。

例外
JMSException:エラーが発生しました。

● public long getJMSTimestamp() throws JMSException

JMSTimestampヘッダフィールドを取得します。

例外
JMSException:エラーが発生しました。

戻り値:ミリ秒で表される時刻
協定世界時の1970年1月1日午前0時から経過したミリ秒の値です。

● public void setJMSTimestamp(long timestamp) throws JMSException

JMSTimestampヘッダフィールドを設定します。TP1/Message Queueは,送信時にPutDate,PutTimeに対して時刻を設定するため,JMSTimestampヘッダフィールドにユーザが値を設定しても無視されます。

JMSTimestampは,TP1/Message Queueに対してメッセージのキューへの格納を依頼した時点の時刻です。メッセージが実際に転送先に送られる時刻ではありません。

受信したメッセージのJMSTimestampを変更するときにこのメソッドを使用します。

パラメタ
timestamp
ミリ秒で表される時刻を指定します。
協定世界時の1970年1月1日午前0時から経過したミリ秒の値を指定してください。

例外
JMSException:エラーが発生しました。

● public byte[] getJMSCorrelationIDAsBytes() throws JMSException

相関識別子をbyte型配列で取得します。

例外
JMSException:エラーが発生しました。

戻り値:相関識別子

● public void setJMSCorrelationIDAsBytes(byte[] correlationID) throws JMSException

相関識別子をbyte型配列で設定します。24バイトを超える部分は切り捨てられます。

パラメタ
correlationID
相関識別子を指定します。

例外
JMSException:エラーが発生しました。

● public java.lang.String getJMSCorrelationID() throws JMSException

相関識別子をString型で取得します。

例外
JMSException:エラーが発生しました。

戻り値:相関識別子

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

相関識別子をString型で設定します。

相関識別子には次の値のどちらかを設定します。

パラメタ
correlationID
相関識別子を指定します。

例外
JMSException:エラーが発生しました。

● public Destination getJMSReplyTo() throws JMSException

応答キューを取得します。

例外
JMSException:エラーが発生しました。

戻り値:応答キュー

● public void setJMSReplyTo(Destination replyTo) throws JMSException

応答キューを設定します。

パラメタ
replyTo
応答キューを指定します。

例外
JMSException:エラーが発生しました。

● public Destination getJMSDestination() throws JMSException

宛先キューを取得します。

例外
JMSException:エラーが発生しました。

戻り値:宛先キュー

● public void setJMSDestination(Destination destination) throws JMSException

宛先キューを設定します。ただし,JMSDestinationヘッダフィールドに値を設定しても,送信時には無視されます。送信完了後,JMSDestinationヘッダフィールドには送信メソッドによって指定される宛先オブジェクトが格納されます。受信時は,JMSDestinationヘッダフィールドには,該当するメッセージが入っていたキューが設定されます。

パラメタ
destination
宛先キューを指定します。

例外
JMSException:エラーが発生しました。

● public int getJMSDeliveryMode() throws JMSException

メッセージの永続性を取得します。

例外
JMSException:エラーが発生しました。

戻り値
DeliveryMode.NON_PERSISTENT:非永続
DeliveryMode.PERSISTENT:永続

● public void setJMSDeliveryMode(int deliveryMode) throws JMSException

メッセージの永続性を設定します。ただし,JMSDeliveryModeヘッダフィールドに値を設定しても,送信時には無視されます。メッセージの永続性はQueueSenderインタフェースで設定します。

パラメタ
deliveryMode
メッセージの永続性を次の値で指定します。
DeliveryMode.NON_PERSISTENT:非永続
DeliveryMode.PERSISTENT:永続

例外
JMSException:エラーが発生しました。

● public boolean getJMSRedelivered() throws JMSException

このメッセージが再送されているかどうかを取得します。

例外
JMSException:エラーが発生しました。

戻り値
false:MQMD構造体のBackoutCountフィールドの値が0
true:MQMD構造体のBackoutCountフィールドの値が1以上

● public void setJMSRedelivered(boolean redelivered) throws JMSException

再送のフラグを設定します。ただし,JMSRedeliveredヘッダフィールドに値を設定しても,送信時には無視されます。

パラメタ
redelivered
再送のフラグを指定します。

例外
JMSException:エラーが発生しました。

● public java.lang.String getJMSType() throws JMSException

TP1/Message QueueはJMSTypeの値を送受信できないため,setJMSTypeメソッドで設定された値がそのまま返ります。

例外
JMSException:エラーが発生しました。

戻り値:JMSType文字列

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

JMSTypeヘッダフィールドを設定しますが,TP1/Message Queueのキューにはこの情報は記録されません。

例外
JMSException:エラーが発生しました。

● public long getJMSExpiration() throws JMSException

メッセージの満了時刻を取得します。

メッセージの満了時刻(JMSExpiration)は,メッセージの登録時刻にメッセージの保持時間(TimeToLive)を加算した時刻に相当します。

なお,メッセージの満了時刻(JMSExpiration)が0の場合,メッセージが満了しないことを意味します。

例外
JMSException:エラーが発生しました。

戻り値:メッセージの満了時刻

● public void setJMSExpiration(long expiration) throws JMSException

メッセージの満了時刻を設定します。ただし,JMSExpirationヘッダフィールドに値を設定しても,送信時には無視されます。TimeToLive(メッセージの保持時間)はQueueSenderインタフェースで設定します。TimeToLiveに0を指定した場合,JMSExpirationヘッダフィールドは0に設定され,メッセージが満了しないことを示します。

パラメタ
expiration
メッセージの満了時刻(単位:ミリ秒)を指定します。0の場合,メッセージは満了しません。

例外
JMSException:エラーが発生しました。

● public int getJMSPriority() throws JMSException

メッセージの優先度を取得します。

例外
JMSException:エラーが発生しました。

戻り値:メッセージの優先度

● public void setJMSPriority(int priority) throws JMSException

メッセージの優先度を設定します。ただし,JMSPriorityヘッダフィールドに値を設定しても,送信時には無視されます。メッセージの優先度はQueueSenderインタフェースで設定します。

パラメタ
priority
メッセージの優先度を指定します。

例外
JMSException:エラーが発生しました。

● public void clearProperties() throws JMSException

プロパティの値を初期化します。ヘッダや本体は削除されません。

例外
JMSException:エラーが発生しました。

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

プロパティ(名称:name)の値が存在するかどうかを調べます。

パラメタ
name
プロパティの名称を指定します。

例外
JMSException:エラーが発生しました。

戻り値
true:プロパティの値が存在します。
false:プロパティの値が存在しません。

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

boolean型のプロパティ(名称:name)の値を取得します。

パラメタ
name
プロパティの名称を指定します。

例外
JMSException:エラーが発生しました。
MessageFormatException:プロパティ値の型変換が不正です。

戻り値:プロパティnameの値

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

byte型のプロパティ(名称:name)の値を取得します。

パラメタ
name
プロパティの名称を指定します。

例外
JMSException:エラーが発生しました。
MessageFormatException:プロパティ値の型変換が不正です。

戻り値:プロパティnameの値

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

short型のプロパティ(名称:name)の値を取得します。

パラメタ
name
プロパティの名称を指定します。

例外
JMSException:エラーが発生しました。
MessageFormatException:プロパティ値の型変換が不正です。

戻り値:プロパティnameの値

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

int型のプロパティ(名称:name)の値を取得します。

パラメタ
name
プロパティの名称を指定します。

例外
JMSException:エラーが発生しました。
MessageFormatException:プロパティ値の型変換が不正です。

戻り値:プロパティnameの値

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

long型のプロパティ(名称:name)の値を取得します。

パラメタ
name
プロパティの名称を指定します。

例外
JMSException:エラーが発生しました。
MessageFormatException:プロパティ値の型変換が不正です。

戻り値:プロパティnameの値

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

float型のプロパティ(名称:name)の値を取得します。

パラメタ
name
プロパティの名称を指定します。

例外
JMSException:エラーが発生しました。
MessageFormatException:プロパティ値の型変換が不正です。

戻り値:プロパティnameの値

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

double型のプロパティ(名称:name)の値を取得します。

パラメタ
name
プロパティの名称を指定します。

例外
JMSException:エラーが発生しました。
MessageFormatException:プロパティ値の型変換が不正です。

戻り値:プロパティnameの値

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

String型のプロパティ(名称:name)の値を取得します。

パラメタ
name
プロパティの名称を指定します。

例外
JMSException:エラーが発生しました。
MessageFormatException:プロパティ値の型変換が不正です。

戻り値:プロパティnameの値

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

プロパティ(名称:name)の値をプリミティブ型をラップするクラスのオブジェクトとして取得します。

パラメタ
name
プロパティの名称を指定します。

例外
JMSException:エラーが発生しました。

戻り値:プロパティnameの値

● public java.util.Enumeration getPropertyNames() throws JMSException

すべてのプロパティの名称を取得します。ヘッダは返されません。

例外
JMSException:エラーが発生しました。

戻り値:プロパティの一覧

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

boolean型のプロパティ(名称:name)の値を設定します。

nameに指定するプロパティ名が,「JMSメッセージのヘッダとプロパティ」の表7-6に示すプロパティ名ではない場合でsendメソッドの発行時には,プロパティの値はTP1/Message Queueのキューには格納されません。

パラメタ
name
プロパティの名称を指定します。
value
プロパティの値を指定します。

例外
JMSException:エラーが発生しました。
MessageNotWriteableException:プロパティは読み込み専用です。

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

byte型のプロパティ(名称:name)の値を設定します。

nameに指定するプロパティ名が,「JMSメッセージのヘッダとプロパティ」の表7-6に示すプロパティ名ではない場合でsendメソッドの発行時には,プロパティの値はTP1/Message Queueのキューには格納されません。

パラメタ
name
プロパティの名称を指定します。
value
プロパティの値を指定します。

例外
JMSException:エラーが発生しました。
MessageNotWriteableException:プロパティは読み込み専用です。

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

short型のプロパティ(名称:name)の値を設定します。

nameに指定するプロパティ名が,「JMSメッセージのヘッダとプロパティ」の表7-6に示すプロパティ名ではない場合でsendメソッドの発行時には,プロパティの値はTP1/Message Queueのキューには格納されません。

パラメタ
name
プロパティの名称を指定します。
value
プロパティの値を指定します。

例外
JMSException:エラーが発生しました。
MessageNotWriteableException:プロパティは読み込み専用です。

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

int型のプロパティ(名称:name)の値を設定します。

nameに指定するプロパティ名が,「JMSメッセージのヘッダとプロパティ」の表7-6に示すプロパティ名ではない場合でsendメソッドの発行時には,プロパティの値はTP1/Message Queueのキューには格納されません。

パラメタ
name
プロパティの名称を指定します。
value
プロパティの値を指定します。

例外
JMSException:エラーが発生しました。
MessageNotWriteableException:プロパティは読み込み専用です。

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

long型のプロパティ(名称:name)の値を設定します。

nameに指定するプロパティ名が,「JMSメッセージのヘッダとプロパティ」の表7-6に示すプロパティ名ではない場合でsendメソッドの発行時には,プロパティの値はTP1/Message Queueのキューには格納されません。

パラメタ
name
プロパティの名称を指定します。
value
プロパティの値を指定します。

例外
JMSException:エラーが発生しました。
MessageNotWriteableException:プロパティは読み込み専用です。

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

float型のプロパティ(名称:name)の値を設定します。

nameに指定するプロパティ名が,「JMSメッセージのヘッダとプロパティ」の表7-6に示すプロパティ名ではない場合でsendメソッドの発行時には,プロパティの値はTP1/Message Queueのキューには格納されません。

パラメタ
name
プロパティの名称を指定します。
value
プロパティの値を指定します。

例外
JMSException:エラーが発生しました。
MessageNotWriteableException:プロパティは読み込み専用です。

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

double型のプロパティ(名称:name)の値を設定します。

nameに指定するプロパティ名が,「JMSメッセージのヘッダとプロパティ」の表7-6に示すプロパティ名ではない場合でsendメソッドの発行時には,プロパティの値はTP1/Message Queueのキューには格納されません。

パラメタ
name
プロパティの名称を指定します。
value
プロパティの値を指定します。

例外
JMSException:エラーが発生しました。
MessageNotWriteableException:プロパティは読み込み専用です。

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

String型のプロパティ(名称:name)の値を設定します。

nameに指定するプロパティ名が,「JMSメッセージのヘッダとプロパティ」の表7-6に示すプロパティ名ではない場合でsendメソッドの発行時には,プロパティの値はTP1/Message Queueのキューには格納されません。

パラメタ
name
プロパティの名称を指定します。
value
プロパティの値を指定します。

例外
JMSException:エラーが発生しました。
MessageNotWriteableException:プロパティは読み込み専用です。

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

プロパティ(名称:name)の値を設定します。設定できる値の型は,プリミティブ型をラップするクラス(Byte,Integerなど),およびString型です。

nameに指定するプロパティ名が,「JMSメッセージのヘッダとプロパティ」の表7-6に示すプロパティ名ではない場合でsendメソッドの発行時には,プロパティの値はTP1/Message Queueのキューには格納されません。

パラメタ
name
プロパティの名称を指定します。
value
プロパティの値を指定します。

例外
JMSException:エラーが発生しました。
MessageFormatException:プロパティ値の型が不正です。
MessageNotWriteableException:プロパティは読み込み専用です。

● public void acknowledge() throws JMSException

現時点から以前のすべてのメッセージを確認します。ただし,確認機能は提供しません。このメソッドを発行しても,即座にリターンします。

すべてのJMSメッセージは,クライアントが「受信側でメッセージは明示的に確認されなければならない」と指定しているときに使われる,acknowledgeメソッドをサポートしています。クライアントが自動確認機能を使用している場合,acknowledgeメソッドの呼び出しは無視されます。

このメソッドを発行した場合,受け取られたにもかかわらず確認されていないメッセージは,受信側に再送される場合があります。

例外
JMSException:エラーが発生しました。
IllegalStateException:すでにクローズされたセションでこのメソッドが発行されました。

● public void clearBody() throws JMSException

メッセージ本体を削除します。ヘッダやプロパティは削除されません。

メッセージ本体が読み込み専用の場合,メッセージ本体は削除されるとともに書き込み専用となります。

例外
JMSException:エラーが発生しました。