Hitachi

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


7.4.8 QueueConnection(Connection)インタフェース

QueueConnectionインタフェースは,アプリケーションがReliable Messagingにアクセスするために使用するアプリケーションレベルのハンドルを提供します。

QueueConnectionオブジェクトを取得するには,QueueConnectionFactory.createQueueConnection()メソッドを使用します。

〈この項の構成〉

(1) キューセッションの生成

createQueueSession()メソッドを発行することでQueueSessionオブジェクトを生成します。また,createQueueSession()メソッドのtransacted引数によってトランザクション設定を指定し,acknowledgeMode引数を指定することでメッセージ承認モードを指定できます。

各引数を指定したときのトランザクションとメッセージ送受信の関係については,「2.6.6 トランザクション制御」を参照してください。

(2) 配送の開始と停止

start()およびstop()メソッドを発行することで配送の開始と停止を制御できます。QueueConnectionオブジェクトは生成時に配送停止状態に設定されています。

(3) コネクションメタデータの取得

Reliable Messagingの製品名やバージョン,JMS APIのバージョンを保持するConnectionMetaDataオブジェクトを取得できます。

(4) キューコネクションのクローズ

QueueConnectionオブジェクトをクローズできます。クローズによって,QueueConnectionオブジェクトに関連づけられたすべてのセッションをクローズし,QueueConnectionオブジェクトに関連づけられたすべてのリソースを解放します。

(5) 形式

public interface Connection
{
  public void     close() throws JMSException;
  public java.lang.String
                  getClientID() throws JMSException;
  public ExceptionListener
                  getExceptionListener() throws JMSException;
  public ConnectionMetaData
                  getMetaData() throws JMSException;
  public void     setClientID(java.lang.String clientID)
                    throws JMSException;
  public void     setExceptionListener(ExceptionListener listener)
                    throws JMSException;
  public void     start() throws JMSException;
  public void     stop() throws JMSException;
}
 
public interface QueueConnection extends javax.jms.Connection
{
  public ConnectionConsumer
                  createConnectionConsumer(Queue queue,
                    java.lang.String messageSelector,
                    ServerSessionPool sessionPool, int maxMessages)
                    throws JMSException;
  public QueueSession
                  createQueueSession(boolean transacted,
                    int acknowledgeMode) throws JMSException;
}

(6) フィールド

ありません。

(7) メソッド

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

(a) closeメソッド

public void close() throws JMSException

コネクションをクローズします。メソッドを発行すると,コネクションに関連づけられているすべてのセッションがクローズされます。コネクションに代わってJavaVM外部リソースが割り当てられているので,これらのリソースが不要になった場合はコネクションをクローズしてください。メソッドを発行すると次に示すとおり動作します。

  • メッセージ処理が適切な方法で終了されるまで,メソッドは復帰しません。

  • コネクションに関連づけられているすべてのセッションのトランザクションはロールバックされます。

  • コネクションに関連づけられているすべてのセッションがクローズします。

  • コネクションに関連づけられているすべてのセッションでのすべての未承認メッセージは,QueueSession.recover()メソッドが正常終了した場合と同じ状態になります。

  • クローズされているコネクションをクローズしても例外は発生しません。

  • 引数

    ありません。

  • 戻り値

    ありません。

  • 例外

    例外クラス

    説明

    JMSException

    内部エラーのためにJMSプロバイダがコネクションのクローズに失敗しました。

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

(b) getClientIDメソッド

public java.lang.String getClientID() throws JMSException

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

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

  • 引数

    ありません。

  • 戻り値

    一意のJMSクライアント識別子。

  • 例外

    ありません。

(c) getExceptionListenerメソッド

public ExceptionListener getExceptionListener() throws JMSException

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

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

  • 引数

    ありません。

  • 戻り値

    例外リスナ。

  • 例外

    ありません。

(d) getMetaDataメソッド

public ConnectionMetaData getMetaData() throws JMSException

コネクションのメタデータを返します。

  • 引数

    ありません。

  • 戻り値

    コネクションメタデータ。

  • 例外

    例外クラス

    説明

    JMSException

    コネクションがクローズしている状態で,メソッドを発行しました。

    内部エラーのためにJMSプロバイダがコネクション用のメタデータ取得に失敗しました。

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

(e) setClientIDメソッド

public void setClientID(java.lang.String clientID) throws JMSException

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

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

  • 引数

    引数名

    説明

    java.lang.String

    一意のJMSクライアント識別子

  • 戻り値

    ありません。

  • 例外

    ありません。

(f) setExceptionListenerメソッド

public void setExceptionListener(ExceptionListener listener)
  throws JMSException

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

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

  • 引数

    引数名

    説明

    listener

    例外リスナ

  • 戻り値

    ありません。

  • 例外

    ありません。

(g) startメソッド

public void start() throws JMSException

コネクションを開始することによって,コネクションに関連づけられているすべてのセッションで,メッセージの配送を開始(または再度開始)します。stop()メソッド発行後や生成後のコネクションは配送が禁止された状態であり,start()メソッドを発行するまでコネクションでは配送が開始されません。開始しているコネクションに対するstart()メソッドの発行は無視されます。

  • 引数

    ありません。

  • 戻り値

    ありません。

  • 例外

    例外クラス

    説明

    JMSException

    コネクションがクローズしている状態で,メソッドを発行しました。

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

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

(h) stopメソッド

public void stop() throws JMSException

コネクションでのメッセージの配送を一時的に停止します。コネクションを停止すると,コネクションに関連づけられているすべてのセッションで配送が禁止されます。停止しているコネクションに対するstop()メソッドの発行は無視されます。

メッセージの配送が停止するまで,stop()メソッドの発行は復帰しません。これは,コネクションが再度開始されるまで,receive()メソッドの復帰を待つすべてのスレッドがメッセージを保持して復帰しないことを意味します。停止したコネクションのQueueReceiver.receive()メソッドのタイマは進行し続けるため,コネクション停止中にreceive()メソッドの処理がタイムアウトすることがあります。

なお,コネクションが停止している間もメッセージは送信できます。

  • 引数

    ありません。

  • 戻り値

    ありません。

  • 例外

    例外クラス

    説明

    JMSException

    コネクションがクローズしている状態で,メソッドを発行しました。

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

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

(i) createConnectionConsumerメソッド

public ConnectionConsumer createConnectionConsumer(Queue queue,
  java.lang.String messageSelector, ServerSessionPool sessionPool,
  int maxMessages) throws JMSException

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

このメソッドを発行した場合,JMSExceptionが発生します。

  • 引数

    引数名

    説明

    queue

    アクセス対象のキュー

    messageSelector

    メッセージセレクタ構文に一致するプロパティを保持するメッセージだけが配送されます。

    sessionPool

    接続コンシューマに関連づけるサーバセッションプール

    maxMessages

    一度にサーバセッションに割り当てできる最大メッセージ数

  • 戻り値

    コネクションコンシューマ。

  • 例外

    例外クラス

    説明

    JMSException

    メソッドが未サポートであることを示します。

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

(j) createQueueSessionメソッド

public QueueSession createQueueSession(boolean transacted,
  int acknowledgeMode) throws JMSException

QueueSessionオブジェクトを生成します。

  • 引数

    引数名

    説明

    transacted

    トランザクション設定を指定する引数です。セッションがトランザクション処理されるかどうかを示します。有効な値を次に示します。

    • true:トランザクション管理されます。

    • false:トランザクション管理されません。

    acknowledgeMode

    メッセージ承認モードを指定する引数です。JMSクライアントが受信するメッセージをどのように承認するかを示します。transacted引数がtrueの場合は無視されます。有効な値を次に示します。

    • Session.AUTO_ACKNOWLEDGE

    • Session.DUPS_OK_ACKNOWLEDGE

    • Session.CLIENT_ACKNOWLEDGE

  • 戻り値

    新しく作成されたキューセッション。

  • 例外

    例外クラス

    説明

    JMSException

    コネクションがクローズしている状態で,メソッドを発行しました。

    内部エラーまたはトランザクションおよびメッセージ承認モードのサポートが不足しているために,QueueConnectionオブジェクトがセッションの作成に失敗しました。

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