QueueSessionインタフェース(JMS)
QueueSessionインタフェースはアプリケーションからの論理的なコネクションハンドルです。
QueueConnection.createQueueSessionでtransactedパラメタにtrueが指定されると,そのQueueSessionからの操作はトランザクションモードとなります。なお,QueueConnection.createQueueSessionでのacknowledgeパラメタは無視されます。
QueueSessionの機能を次に示します。
-
ローカルトランザクションの開始,コミット,およびロールバック
-
BytesMessageオブジェクトの生成
-
Messageオブジェクトの生成
-
QueueReceiverオブジェクトの生成
-
QueueBrowserオブジェクトの生成
-
QueueSenderオブジェクトの生成
形式
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; }
フィールド
● public static final int AUTO_ACKNOWLEDGE
このフィールドは未サポートです。
● public static final int CLIENT_ACKNOWLEDGE
このフィールドは未サポートです。
● public static final int DUPS_OK_ACKNOWLEDGE
このフィールドは未サポートです。
メソッド
● public void close() throws JMSException
QueueSessionをクローズします。
- 例外
-
JMSException:QueueSessionのクローズに失敗しました。
● public void commit() throws JMSException
ローカルトランザクションをコミットします。
- 例外
-
JMSException:コミットに失敗しました。
TransactionRolledBackException:該当しません。
IllegalStateException:メソッドがトランザクション外でコールされました。または,QueueSessionがクローズされている状態で,このメソッドが発行されました。
● public BytesMessage createBytesMessage() throws JMSException
BytesMessageオブジェクトを生成します。
- 例外
-
JMSException:BytesMessageオブジェクトの生成に失敗しました。または,QueueSessionがクローズされている状態で,このメソッドが発行されました。
戻り値:BytesMessageオブジェクト
● public MapMessage createMapMessage() throws JMSException
このメソッドは未サポートです。
- 例外
-
JMSException:このメソッドは未サポートです。
● public Message createMessage() throws JMSException
Messageオブジェクトを生成します。
- 例外
-
JMSException:Messageオブジェクトの生成に失敗しました。または,QueueSessionがクローズされている状態で,このメソッドが発行されました。
戻り値:Messageオブジェクト
● public ObjectMessage createObjectMessage() throws JMSException
このメソッドは未サポートです。
- 例外
-
JMSException:このメソッドは未サポートです。
● public ObjectMessage createObjectMessage(java.io.Serializable object) throws JMSException
このメソッドは未サポートです。
- 例外
-
JMSException:このメソッドは未サポートです。
● public StreamMessage createStreamMessage() throws JMSException
このメソッドは未サポートです。
- 例外
-
JMSException:このメソッドは未サポートです。
● public TextMessage createTextMessage() throws JMSException
このメソッドは未サポートです。
- 例外
-
JMSException:このメソッドは未サポートです。
● public TextMessage createTextMessage(java.lang.String text) throws JMSException
このメソッドは未サポートです。
- 例外
-
JMSException:このメソッドは未サポートです。
● public MessageListener getMessageListener() throws JMSException
このメソッドは未サポートです。
- 例外
-
JMSException:このメソッドは未サポートです。
● public boolean getTransacted() throws JMSException
QueueSessionがトランザクションモードかどうかを取得します。
- 例外
-
JMSException:トランザクション状態の取得に失敗しました。または,QueueSessionがクローズされている状態で,このメソッドが発行されました。
- 戻り値
-
true:トランザクションモード
false:トランザクションモード以外
● public void recover() throws JMSException
このメソッドは未サポートです。
- 例外
-
JMSException:このメソッドは未サポートです。
IllegalStateException:該当しません。
● public void rollback() throws JMSException
ローカルトランザクションをロールバックします。
- 例外
-
JMSException:ロールバックに失敗しました。
IllegalStateException:メソッドがトランザクション外でコールされました。または,QueueSessionがクローズされている状態で,このメソッドが発行されました。
● public void run()
このメソッドは未サポートです。
● public void setMessageListener(MessageListener listener) throws JMSException
このメソッドは未サポートです。
- 例外
-
JMSException:このメソッドは未サポートです。
● public QueueBrowser createBrowser(Queue queue) throws JMSException
キューブラウザを生成します。
- パラメタ
-
- queue
-
アクセス対象のQueueオブジェクトを指定します。
TemporaryQueueオブジェクトを指定してキューブラウザを生成する場合,このメソッドと同一のQueueSessionオブジェクトのcreateTemporaryQueueメソッドによって作成されたTemporaryQueueを指定する必要があります。
- 例外
-
JMSException:キューブラウザの生成に失敗しました。または,QueueSessionがクローズされている状態で,このメソッドが発行されました。
InvalidDestinationException:不正なキューを指定しました。
戻り値:QueueBrowserオブジェクト
● public QueueBrowser createBrowser(Queue queue, java.lang.String messageSelector) throws JMSException
キューブラウザを生成します。
- パラメタ
-
- queue
-
アクセス対象のQueueオブジェクトを指定します。
TemporaryQueueオブジェクトを指定してキューブラウザを生成する場合,このメソッドと同一のQueueSessionオブジェクトのcreateTemporaryQueueメソッドによって作成されたTemporaryQueueを指定する必要があります。
- messageSelector
-
メッセージセレクタを指定します。
- 例外
-
JMSException:キューブラウザの生成に失敗しました。または,QueueSessionがクローズされている状態で,このメソッドが発行されました。
InvalidDestinationException:不正なキューを指定しました。
InvalidSelectorException:不正なメッセージセレクタ構文です。
戻り値:QueueBrowserオブジェクト
● public Queue createQueue(java.lang.String queueName) throws JMSException
このメソッドは未サポートです。Queueオブジェクトは上位クラスで作成されて,JNDIにあらかじめ登録されているためです。
- パラメタ
-
- queueName
-
キュー名称を指定します。
- 例外
-
JMSException:このメソッドは未サポートです。
● public QueueReceiver createReceiver(Queue queue) throws JMSException
キューレシーバを生成します。
- パラメタ
-
- queue
-
アクセス対象のQueueオブジェクトを指定します。
TemporaryQueueオブジェクトを指定してキューレシーバを生成する場合,このメソッドと同一のQueueSessionオブジェクトのcreateTemporaryQueueメソッドによって作成されたTemporaryQueueを指定する必要があります。
- 例外
-
JMSException:キューレシーバの生成に失敗しました。または,QueueSessionがクローズされている状態で,このメソッドが発行されました。
InvalidDestinationException:不正なキューを指定しました。
戻り値:QueueReceiverオブジェクト
● public QueueReceiver createReceiver(Queue queue, java.lang.String messageSelector) throws JMSException
キューレシーバを生成します。
- パラメタ
-
- queue
-
アクセス対象のQueueオブジェクトを指定します。
TemporaryQueueオブジェクトを指定してキューレシーバを生成する場合,このメソッドと同一のQueueSessionオブジェクトのcreateTemporaryQueueメソッドによって作成されたTemporaryQueueを指定する必要があります。
- messageSelector
-
メッセージセレクタを指定します。
- 例外
-
JMSException:キューレシーバの生成に失敗しました。または,QueueSessionがクローズされている状態で,このメソッドが発行されました。
InvalidDestinationException:不正なキューを指定しました。
InvalidSelectorException:不正なメッセージセレクタ構文です。
戻り値:QueueReceiverオブジェクト
● public QueueSender createSender(Queue queue) throws JMSException
キューセンダを生成します。
- パラメタ
-
- queue
-
アクセス対象のQueueオブジェクトを指定します。キューが不確定な場合はnullを指定してください。
TemporaryQueueオブジェクトを指定してキューセンダを生成する場合,このメソッドと同一のQueueSessionオブジェクトのcreateTemporaryQueueメソッドによって作成されたTemporaryQueueを指定する必要があります。
- 例外
-
JMSException:キューセンダの生成に失敗しました。または,QueueSessionがクローズされている状態で,このメソッドが発行されました。
InvalidDestinationException:不正なキューを指定しました。
戻り値:QueueSenderオブジェクト
● public TemporaryQueue createTemporaryQueue() throws JMSException
動的キューを生成します。生成された動的キューは,TemporaryQueue内のdeleteメソッドが発行されると削除されます。
createTemporaryQueueメソッドによって作成される動的キューは,QueueSessionオブジェクトごとに異なります。
TemporaryQueueを使用するためには,TP1/Message Queue AccessリソースアダプタのProperties設定の環境変数ModelQueueNameに,モデルキュー名を指定します。詳細については,「2.2 MQCクライアント機能の環境設定」を参照してください。また,サーバ側のTP1/Message Queueでモデルキューを定義する必要があります。このモデルキューのDefinitionType属性によって,一時的動的キューか永続的動的キューのどちらかが作成されます。作成されるキューの種類ごとに,次に示す点に注意が必要です。
-
一時的動的キューの場合,Cosminexus Component Containerのアソシエーション機能が動作することによって,いったんキューが削除されて再作成されます。
キューが削除されないようにするには,モデルキュー名に永続的動的キューを指定してください。
-
永続的動的キューの場合,要求受信監視タイマなどの無通信時間監視でMQCサーバが待機状態になったとき,削除されないで残ったままとなります。
クライアントから永続的動的キューを直接削除する方法はないため,サーバで適宜削除してください。
createTemporaryQueueメソッドによって作成される動的キュー名は「JMS*」です(*:ユニークな文字列)。
- 例外
-
JMSException:動的キューの生成に失敗しました。または,QueueSessionがクローズされている状態で,このメソッドが発行されました。
戻り値:TemporaryQueueオブジェクト