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

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

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

<この項の構成>
(1) キューセッションの生成
(2) 配送の開始と停止
(3) コネクションメタデータの取得
(4) キューコネクションのクローズ
(5) 形式
(6) フィールド
(7) メソッド

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

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

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

(2) 配送の開始と停止

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

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

Cosminexus RMの製品名やバージョン,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外部リソースが割り当てられているので,これらのリソースが不要になった場合はコネクションをクローズしてください。メソッドを発行すると次に示すとおり動作します。

(b) getClientIDメソッド

public java.lang.String getClientID() throws JMSException

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

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

(c) getExceptionListenerメソッド

public ExceptionListener getExceptionListener() throws JMSException

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

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

(d) getMetaDataメソッド

public ConnectionMetaData getMetaData() throws JMSException

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

(e) setClientIDメソッド

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

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

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

(f) setExceptionListenerメソッド

public void setExceptionListener(ExceptionListener listener)
 throws JMSException

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

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

(g) startメソッド

public void start() throws JMSException

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

(h) stopメソッド

public void stop() throws JMSException

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

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

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

(i) createConnectionConsumerメソッド

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

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

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

(j) createQueueSessionメソッド

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

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