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

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

7.4.12 QueueSession(Session)インタフェース

QueueSession(Session)インタフェースはアプリケーションが使用する論理的なコネクションハンドルです。

<この項の構成>
(1) メッセージオブジェクトの生成
(2) キューセンダの生成
(3) キューレシーバの生成
(4) キューブラウザの生成
(5) ローカルトランザクションのコミットとロールバック
(6) キューセッションのクローズ
(7) 配送メッセージのリカバー
(8) 形式
(9) フィールド
(10) メソッド

(1) メッセージオブジェクトの生成

メッセージオブジェクト(Message,BytesMessage,ObjectMessageまたはTextMessageオブジェクト)を生成します。

(2) キューセンダの生成

QueueSenderオブジェクトを生成します。QueueSenderオブジェクトを生成する際,メッセージのあて先をcreateSender()メソッドの引数に指定します。

(3) キューレシーバの生成

QueueReceiverオブジェクトを生成します。QueueReceiverオブジェクトを生成する際,メッセージセレクタを設定できます。

(4) キューブラウザの生成

QueueBrowserオブジェクトを生成します。QueueBrowserオブジェクトを生成する際,メッセージセレクタを設定できます。

(5) ローカルトランザクションのコミットとロールバック

キューセンダとキューレシーバにわたるローカルトランザクションの開始,コミットおよびロールバックを実行します。ローカルトランザクションについては,「2.6.6(1) ローカルトランザクションの利用」を参照してください。

(6) キューセッションのクローズ

QueueSessionオブジェクトをクローズできます。クローズによって,QueueSessionオブジェクトに関連づけられたすべてのQueueSender,QueueReceiverおよびQueueBrowserオブジェクトをクローズし,QueueSessionオブジェクトに関連づけられたすべてのリソースを解放します。

QueueSession(Session)インタフェースのメソッドは,複数スレッドからの同時発行をJMSで禁止されています。ただし,close()メソッドだけは複数スレッドから同時発行してパラレルに実行できます。また,クローズされたQueueSessionオブジェクトに関連するインタフェースのメソッドを実行するとIllegalStateExceptionが発生しますが,close()メソッドでは発生しません。

(7) 配送メッセージのリカバー

一度配送されたメッセージを再び配送できるようにします。recover()メソッドの動作については,「2.6.6(4) トランザクションとメッセージ受信」を参照してください。

(8) 形式

 
public interface Session extends java.lang.Runnable
{
  public static final int  AUTO_ACKNOWLEDGE;
  public static final int  CLIENT_ACKNOWLEDGE;
  public static final int  DUPS_OK_ACKNOWLEDGE;
  public void     close() throws JMSException;
  public void     commit() throws JMSException;
  public BytesMessage
                  createBytesMessage() throws JMSException;
  public MapMessage
                  createMapMessage() throws JMSException;
  public Message  createMessage() throws JMSException;
  public ObjectMessage
                  createObjectMessage() throws JMSException;
  public ObjectMessage
                  createObjectMessage(java.io.Serializable object)
                    throws JMSException;
  public StreamMessage
                  createStreamMessage() throws JMSException;
  public TextMessage
                  createTextMessage() throws JMSException;
  public TextMessage
                  createTextMessage(java.lang.String text)
                    throws JMSException;
  public MessageListener
                  getMessageListener() throws JMSException;
  public boolean  getTransacted() throws JMSException;
  public void     recover() throws JMSException;
  public void     rollback() throws JMSException;
  public void     run();
  public void     setMessageListener(MessageListener listener)
                    throws JMSException;
}
 
public interface QueueSession extends Session
{
  public QueueBrowser
                  createBrowser(Queue queue) throws JMSException;
  public QueueBrowser
                  createBrowser(Queue queue,
                    java.lang.String messageSelector)
                    throws JMSException;
  public Queue    createQueue(java.lang.String queueName)
                    throws JMSException;
  public QueueReceiver
                  createReceiver(Queue queue) throws JMSException;
  public QueueReceiver
                  createReceiver(Queue queue,
                    java.lang.String messageSelector)
                    throws JMSException;
  public QueueSender
                  createSender(Queue queue) throws JMSException;
  public TemporaryQueue
                  createTemporaryQueue() throws JMSException;
}
 

(9) フィールド

「(8) 形式」に記載した順序で各フィールドを説明します。

(a) AUTO_ACKNOWLEDGEフィールド
 
public static final int AUTO_ACKNOWLEDGE
 

このメッセージ承認モードでは,次に示す場合にセッションがJMSクライアントのメッセージ受信を自動的に確認応答します。

(b) CLIENT_ACKNOWLEDGEフィールド
 
public static final int CLIENT_ACKNOWLEDGE
 

このメッセージ承認モードでは,JMSクライアントがメッセージのacknowledge()メソッドを発行して処理済みのメッセージを確認応答します。

(c) DUPS_OK_ACKNOWLEDGEフィールド
 
public static final int DUPS_OK_ACKNOWLEDGE
 

このメッセージ承認モードはAUTO_ACKNOWLEDGEと同じ動作です。

(10) メソッド

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

(a) closeメソッド
 
public void close() throws JMSException
 

セッションをクローズします。セッションには幾つかのリソースが割り当てられている場合があるため,リソースが不要になった場合はセッションをクローズしてください。メソッドを発行すると次に示すとおり動作します。

なお,クローズされているセッションをクローズしても例外は発生しません。

複数スレッドから同時に発行できるメソッドは,QueueSessionインタフェースではこのメソッドだけです。

(b) commitメソッド
 
public void commit() throws JMSException
 

トランザクションで実行されたメッセージをすべてコミットし,設定中のロックをすべて解放します。

(c) createBytesMessageメソッド
 
public BytesMessage createBytesMessage() throws JMSException
 

BytesMessageオブジェクトを作成します。

(d) createMapMessageメソッド
 
public MapMessage createMapMessage() throws JMSException
 

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

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

(e) createMessageメソッド
 
public Message createMessage() throws JMSException
 

Messageオブジェクトを作成します。

(f) createObjectMessageメソッド
 
public ObjectMessage createObjectMessage() throws JMSException
 

ObjectMessageオブジェクトを作成します。

(g) createObjectMessageメソッド
 
public ObjectMessage createObjectMessage(java.io.Serializable object)
  throws JMSException
 

ペイロードを設定済みのObjectMessageオブジェクトを,object引数を基に作成します。

(h) createStreamMessageメソッド
 
public StreamMessage createStreamMessage() throws JMSException
 

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

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

(i) createTextMessageメソッド
 
public TextMessage createTextMessage() throws JMSException
 

TextMessageオブジェクトを作成します。

(j) createTextMessageメソッド
 
public TextMessage createTextMessage(java.lang.String text)
  throws JMSException
 

ペイロードを設定済みのTextMessageオブジェクトを,text引数を基に作成します。

(k) getMessageListenerメソッド
 
public MessageListener getMessageListener() throws JMSException
 

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

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

(l) getTransactedメソッド
 
public boolean getTransacted() throws JMSException
 

セッションがトランザクションモードであるかどうかを示します。

(m) recoverメソッド
 
public void recover() throws JMSException
 

メソッドを発行すると次に示すとおり動作します。

(n) rollbackメソッド
 
public void rollback() throws JMSException
 

トランザクションで実行されたメッセージをすべてロールバックし,設定中のロックをすべて解放します。

(o) runメソッド
 
public void run()
 

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

このメソッドを発行した場合,実質的な処理は行われません。

(p) setMessageListenerメソッド
 
public void setMessageListener(MessageListener listener)
  throws JMSException
 

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

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

(q) createBrowserメソッド
 
public QueueBrowser createBrowser(Queue queue) throws JMSException
 

QueueBrowserオブジェクトを作成して,指定されたキューのメッセージを調べます。

(r) createBrowserメソッド
 
public QueueBrowser createBrowser(Queue queue,
  java.lang.String messageSelector) throws JMSException
 

QueueBrowserオブジェクトを作成し,メッセージセレクタを使用して指定されたキューのメッセージを調べます。

(s) createQueueメソッド
 
public Queue createQueue(java.lang.String queueName)
  throws JMSException
 

キューの名前を指定して,キューの識別情報を作成します。

queueName引数にはhrmmkqueコマンドに指定したキュー名を指定します。

(t) createReceiverメソッド
 
public QueueReceiver createReceiver(Queue queue) throws JMSException
 

QueueReceiverオブジェクトを作成して,指定されたキューからメッセージを受信します。

(u) createReceiverメソッド
 
public QueueReceiver createReceiver(Queue queue,
  java.lang.String messageSelector) throws JMSException
 

QueueReceiverオブジェクトを作成し,メッセージセレクタを使用して指定されたキューからメッセージを受信します。

(v) createSenderメソッド
 
public QueueSender createSender(Queue queue) throws JMSException
 

QueueSenderオブジェクトを作成して,指定されたキューにメッセージを送信します。

(w) createTemporaryQueueメソッド
 
public TemporaryQueue createTemporaryQueue() throws JMSException
 

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

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