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

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

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

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

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

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

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

(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オブジェクトを生成します。