この節では,CJMSプロバイダを使用してアプリケーションを実装する際の制限事項について説明します。
CJMSプロバイダはJMS1.1仕様に準拠していますが,一部のインタフェースおよびメソッドは使用できません。アプリケーションで使用できないインタフェースまたはメソッドを使用すると,JMSException例外がスローされるおそれがあります。
使用できないインタフェースを次に示します。
- javax.jms.ServerSession
- javax.jms.ServerSessionPool
- javax.jms.ConnectionConsumer
- すべてのjavax.jms XAインタフェース
また,次の表に示すインタフェースの一部のメソッドは,アプリケーションクライアントコンテナで実行するアプリケーションで使用するメソッドです。CJMSプロバイダでは使用できません。
CJMSプロバイダで使用できないメソッドをインタフェースごとに次の表に示します。
表7-9 CJMSプロバイダで使用できないメソッド
インタフェース |
使用できないメソッド |
javax.jms.Session |
- setMessageListener(MessageListener listener)
- getMessageListener()
- run()
|
javax.jms.Connection |
- setExceptionListener(ExceptionListener listener)
- stop()
- setClientID(String clientID)
- トランザクション処理されるSessionオブジェクトを作成するメソッド
(例えば,createSessionメソッドの一つ目の引数「transacted」に「true」を指定することができません)。
|
javax.jms.QueueConnection |
- createConnectionConsumer(Queue queue, String messageSelector, ServerSessionPool sessionPool, int maxMessages)
- トランザクション処理されるQueueSessionオブジェクトを作成するメソッド
(例えば,createQueueSessionメソッドの一つ目の引数「transacted」に「true」を指定することができません)。
|
javax.jms.TopicConnection |
- createConnectionConsumer(Topic topic, String messageSelector, ServerSessionPool sessionPool, int maxMessages)
- createDurableConnectionConsumer(Topic topic, String subscriptionName, String messageSelector, ServerSessionPool sessionPool, int maxMessages)
- トランザクション処理されるTopicSessionオブジェクトを作成するメソッド
(例えば,createTopicSessionメソッドの一つ目の引数「transacted」に「true」を指定することができません)。
|
また,WebコンテナまたはEJBコンテナで動作するアプリケーションのコンポーネントでは,一つの接続で複数のアクティブなセッションオブジェクトを作成してはいけません。すでにアクティブなセッションオブジェクトがある場合に,createSessionメソッドでオブジェクトを作成しようとした場合,JMSException例外がスローされることがあります。
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.