Hitachi

OpenTP1 Version 7 メッセージキューイングアクセス機能 TP1/Message Queue Access 使用の手引


QueueSessionインタフェース(JMS)

QueueSessionインタフェースはアプリケーションからの論理的なコネクションハンドルです。

QueueConnection.createQueueSessionでtransactedパラメタにtrueが指定されると,そのQueueSessionからの操作はトランザクションモードとなります。なお,QueueConnection.createQueueSessionでのacknowledgeパラメタは無視されます。

QueueSessionの機能を次に示します。

〈このページの構成〉

形式

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オブジェクト