Hitachi

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


7.4.11 QueueSender(MessageProducer)インタフェース

QueueSender(MessageProducer)インタフェースは,JMSクライアントがあて先にメッセージを送信するために使用します。

〈この項の構成〉

(1) メッセージの送信

指定したあて先にメッセージを送信できます。send()メソッドの実行中に,JMSクライアント内の他スレッドがメッセージを変更してはいけません。メッセージが変更された場合のsend()メソッドの結果は保証されません。JMSPriorityヘッダの設定は,メッセージの送信処理の一部として実行されます。

(2) キューセンダのクローズ

QueueSenderオブジェクトをクローズできます。クローズによって,QueueSenderオブジェクトに関連づけられたすべてのリソースを解放します。QueueSender(MessageProducer)インタフェースのメソッドは,複数スレッドからの同時呼び出しをJMSで禁止されています。ただし,close()メソッドだけは,複数スレッドからの同時発行に対してパラレルに実行できます。

(3) 形式

public interface MessageProducer
{
  public void     close() throws JMSException;
  public int      getDeliveryMode() throws JMSException;
  public boolean  getDisableMessageID() throws JMSException;
  public boolean  getDisableMessageTimestamp() throws JMSException;
  public int      getPriority() throws JMSException;
  public long     getTimeToLive() throws JMSException;
  public void     setDeliveryMode(int deliveryMode)
                    throws JMSException;
  public void     setDisableMessageID(boolean value)
                    throws JMSException;
  public void     setDisableMessageTimestamp(boolean value)
                    throws JMSException;
  public void     setPriority(int defaultPriority)
                    throws JMSException;
  public void     setTimeToLive(long timeToLive) throws JMSException;
}
 
public interface QueueSender extends MessageProducer
{
  public Queue    getQueue() throws JMSException;
  public void     send(Message message) throws JMSException;
  public void     send(Message message, int deliveryMode, int priority,
                    long timeToLive) throws JMSException;
  public void     send(Queue queue, Message message)
                    throws JMSException;
  public void     send(Queue queue, Message message, int deliveryMode,
                   int priority, long timeToLive) throws JMSException;
}

(4) フィールド

ありません。

(5) メソッド

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

(a) closeメソッド

public void close() throws JMSException

メッセージプロデューサをクローズします。メッセージプロデューサには幾つかのリソースが割り当てられている場合があるため,リソースが不要になった場合はメッセージプロデューサをクローズしてください。

  • クローズされているメッセージプロデューサをクローズしても例外は発生しません。

  • このメソッドはMessageProducerインタフェースでは唯一,複数スレッドから同時に発行できます。

  • 引数

    ありません。

  • 戻り値

    ありません。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがメッセージプロデューサをクローズする処理に失敗しました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(b) getDeliveryModeメソッド

public int getDeliveryMode() throws JMSException

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

このメソッドを発行した場合,0を返します。

  • 引数

    ありません。

  • 戻り値

    メッセージプロデューサ用のメッセージ管理形態。次に示すどちらかの値を返します。

    • DeliveryMode.NON_PERSISTENT:非永続

    • DeliveryMode.PERSISTENT:永続

  • 例外

    ありません。

(c) getDisableMessageIDメソッド

public boolean getDisableMessageID() throws JMSException

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

このメソッドを発行した場合,falseを返します。

  • 引数

    ありません。

  • 戻り値

    メッセージ識別子が無効かどうかを示す値です。

  • 例外

    ありません。

(d) getDisableMessageTimestampメソッド

public boolean getDisableMessageTimestamp() throws JMSException

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

このメソッドを発行した場合,falseを返します。

  • 引数

    ありません。

  • 戻り値

    メッセージのタイムスタンプが無効かどうかを示す値です。次に示すどちらかを返します。

    • true:メッセージ識別子は使用できません。

    • false:メッセージ識別子は使用できます。

  • 例外

    ありません。

(e) getPriorityメソッド

public int getPriority() throws JMSException

メッセージプロデューサに指定された優先度を返します。なお,この値はメッセージに設定されたJMSPriorityヘッダの値と同じです。

  • 引数

    ありません。

  • 戻り値

    メッセージプロデューサ用のメッセージ優先度。

  • 例外

    例外クラス

    説明

    JMSException

    セッション,コネクションまたはメッセージプロデューサをクローズしている状態でメソッドを発行しました。

    内部エラーのためにJMSプロバイダが優先度の取得に失敗しました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(f) getTimeToLiveメソッド

public long getTimeToLive() throws JMSException

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

このメソッドを発行した場合,0を返します。

  • 引数

    ありません。

  • 戻り値

    メッセージの有効期間(ミリ秒単位)。ゼロは無制限を示します。

  • 例外

    ありません。

(g) setDeliveryModeメソッド

public void setDeliveryMode(int deliveryMode) throws JMSException

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

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

  • 引数

    引数名

    説明

    deliveryMode

    メッセージプロデューサのメッセージの管理形態。次に示すどちらかの値を指定します。

    • DeliveryMode.NON_PERSISTENT:非永続

    • DeliveryMode.PERSISTENT:永続

  • 戻り値

    ありません。

  • 例外

    ありません。

(h) setDisableMessageIDメソッド

public void setDisableMessageID(boolean value) throws JMSException

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

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

  • 引数

    引数名

    説明

    value

    メッセージ識別子が無効かどうかを示す値

  • 戻り値

    ありません。

  • 例外

    ありません。

(i) setDisableMessageTimestampメソッド

public void setDisableMessageTimestamp(boolean value)
  throws JMSException

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

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

  • 引数

    引数名

    説明

    value

    メッセージ識別子が無効かどうかを示す値

  • 戻り値

    ありません。

  • 例外

    ありません。

(j) setPriorityメソッド

public void setPriority(int defaultPriority) throws JMSException

プロデューサのデフォルトの優先度を指定します。0(最低)〜9(最高)の範囲の値を指定します。デフォルト値はjavax.jms.Message.DEFAULT_PRIORITYです。範囲以外の値を指定した場合,JMSExceptionが発生します。

  • 引数

    引数名

    説明

    defaultPriority

    メッセージプロデューサ用のメッセージ優先度。0〜9の範囲で値を指定します。

  • 戻り値

    ありません。

  • 例外

    例外クラス

    説明

    JMSException

    セッション,コネクションまたはメッセージプロデューサをクローズしている状態でメソッドを発行しました。

    内部エラーのためにJMSプロバイダが優先度の設定に失敗しました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(k) setTimeToLiveメソッド

public void setTimeToLive(long timeToLive) throws JMSException

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

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

  • 引数

    引数名

    説明

    timeToLive

    メッセージの有効期間(ミリ秒単位)。ゼロは無制限を示します。

  • 戻り値

    ありません。

  • 例外

    ありません。

(l) getQueueメソッド

public Queue getQueue() throws JMSException

キューセンダに関連づけられたキューを返します。

  • 引数

    ありません。

  • 戻り値

    送信側のキュー。

  • 例外

    例外クラス

    説明

    JMSException

    セッション,コネクションまたはメッセージプロデューサをクローズしている状態でメソッドを発行しました。

    内部エラーのためにJMSプロバイダがQueueSenderオブジェクトに関連づけられたキューの取得に失敗しました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(m) sendメソッド

public void send(Message message) throws JMSException

メッセージをキューに送信します。キューセンダで設定した優先度が使用されます。

送信メソッドの実行時にメッセージを変更した場合,送信の結果は保証されません。

  • 引数

    引数名

    説明

    message

    送信するメッセージ

  • 戻り値

    ありません。

  • 例外

    例外クラス

    説明

    InvalidDestinationException

    JMSクライアントがメソッドを使用する際,キューセンダに無効なキューを指定しました。

    JMSException

    セッション,コネクションまたはメッセージプロデューサをクローズしている状態でメソッドを発行しました。

    message引数にnullが指定されました。

    内部エラーのためにJMSプロバイダがメッセージの送信に失敗しました。

    MessageFormatException

    無効なメッセージが指定されました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(n) sendメソッド

public void send(Message message, int deliveryMode, int priority,
  long timeToLive) throws JMSException

メッセージをキューに送信します。

  • 送信メソッドの実行時にメッセージを変更した場合,送信の結果は保証されません。

  • このメソッドを発行した場合,deliveryMode引数とtimeToLive引数を無視して実行します。

  • 引数

    引数名

    説明

    message

    送信するメッセージ

    deliveryMode

    使用するメッセージの管理形態。次に示すどちらかの値を指定します。

    • DeliveryMode.NON_PERSISTENT:非永続

    • DeliveryMode.PERSISTENT:永続

    priority

    メッセージの優先度。0(最低)〜9(最高)の範囲で値を指定します。

    timeToLive

    メッセージの有効期間(ミリ秒)

  • 戻り値

    ありません。

  • 例外

    例外クラス

    説明

    InvalidDestinationException

    JMSクライアントがメソッドを使用する際,キューセンダに無効なキューを指定しました。

    JMSException

    セッション,コネクションまたはメッセージプロデューサをクローズしている状態でメソッドを発行しました。

    message引数にnullが指定されました。

    内部エラーのためにJMSプロバイダがメッセージの送信に失敗しました。

    MessageFormatException

    無効なメッセージが指定されました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(o) sendメソッド

public void send(Queue queue, Message message) throws JMSException

メッセージをキューに送信します。キューセンダで設定した優先度が使用されます。

queue引数にnullが指定された場合,Session.createSender()メソッドのqueue引数に指定されたキューにメッセージを送信します。

送信メソッドの実行時にメッセージを変更した場合,送信の結果は保証されません。

  • 引数

    引数名

    説明

    queue

    メッセージのあて先キュー

    message

    送信するメッセージ

  • 戻り値

    ありません。

  • 例外

    例外クラス

    説明

    InvalidDestinationException

    JMSクライアントがメソッドを使用する際,キューセンダに無効なキューを指定しました。

    JMSException

    セッション,コネクションまたはメッセージプロデューサをクローズしている状態でメソッドを発行しました。

    message引数にnullが指定されました。

    内部エラーのためにJMSプロバイダがメッセージの送信に失敗しました。

    MessageFormatException

    無効なメッセージが指定されました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。

(p) sendメソッド

public void send(Queue queue, Message message, int deliveryMode,
  int priority, long timeToLive) throws JMSException

メッセージをキューに送信します。

queue引数にnullが指定された場合,Session.createSender()メソッドのqueue引数に指定されたキューにメッセージを送信します。

  • 送信メソッドの実行時にメッセージを変更した場合,送信の結果は保証されません。

  • このメソッドを発行した場合,deliveryMode引数とtimeToLive引数を無視して実行します。

  • 引数

    引数名

    説明

    queue

    メッセージのあて先キュー

    message

    送信するメッセージ

    deliveryMode

    使用するメッセージの管理形態。次に示すどちらかの値を指定します。

    • DeliveryMode.NON_PERSISTENT:非永続

    • DeliveryMode.PERSISTENT:永続

    priority

    メッセージの優先度。0(最低)〜9(最高)の範囲で値を指定します。

    timeToLive

    メッセージの有効期間(ミリ秒)

  • 戻り値

    ありません。

  • 例外

    例外クラス

    説明

    InvalidDestinationException

    JMSクライアントがメソッドを使用する際,キューセンダに無効なキューを指定しました。

    JMSException

    セッション,コネクションまたはメッセージプロデューサをクローズしている状態でメソッドを発行しました。

    message引数にnullが指定されました。

    priority引数に0〜9の範囲外の値が指定されました。

    内部エラーのためにJMSプロバイダがメッセージの送信に失敗しました。

    MessageFormatException

    無効なメッセージが指定されました。

    例外クラスには障害コードと障害情報が設定されます。障害コードと対処については,「7.9 障害コードの詳細」を参照してください。