7.11 アプリケーション実装時の制限事項

この節では,Cosminexus JMSプロバイダを使用してアプリケーションを実装する際の制限事項について説明します。

Cosminexus JMSプロバイダはJMS1.1仕様に準拠していますが,一部のインタフェースおよびメソッドは使用できません。アプリケーションで使用できないインタフェースまたはメソッドを使用すると,JMSException例外がスローされるおそれがあります。

使用できないインタフェースを次に示します。

また,次の表に示すインタフェースの一部のメソッドは,アプリケーションクライアントコンテナで実行するアプリケーションで使用するメソッドです。Cosminexus JMSプロバイダでは使用できません。

Cosminexus JMSプロバイダで使用できないメソッドをインタフェースごとに次の表に示します。

表7-9 Cosminexus JMSプロバイダで使用できないメソッド

インタフェース使用できないメソッド
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例外がスローされることがあります。